Home
Sviluppo di una carrozzina autonoma d`ausilio ai disabili motori
Contents
1. T T T T Percorso carrozzina 6090 Percorso pianificato 7 Ostacoli dinamici rilevati 4000 zl o3 2000 j i 7 4 i E iti E dd 44 ys gt Ha Pd ee i F a al ys i e OF ert ot oal 4 I S i gt tx 2000 H i i J ee ai Gi ji I start sa fa il 4000 li n n a a 4000 2000 0 2000 4000 6000 8000 x mm Figura 7 24 Esecuzione automatica di un percorso a L 2 182 Capitolo 7 Risultati sperimentali T T Percorso carrozzina 6000 ercorso pianificato 7 Ostacoli dinamici rilevati 4000 a e i 2000 be J E 7 gt Mi E i Pie Fai gt Sa i 7 z di i Me si Bri i lA P x ob A E start 8888 k H 2000 H if Si 7 Era eri i 42 phon ii i fe ki T generi amp ud 4000 H 1 S fi tnt O 1 4000 2000 0 2000 4000 6000 8000 Figura 7 25 Esecuzione automatica di un percorso a L 3 Ci si aspetterebbe che la sovrapposizione degli effetti del comportamento di evitamento ostacoli e di guida autonoma porti ad aggirare completamente l ostacolo e proseguire il percorso in direzione del via point ma questo non succede Infatti la presenza di un ostacolo dovrebbe provocare la produzione di movimenti di controllo che fanno deviare il percorso seguito rispetto alla traiettoria pianificata annullando tutti i movimenti che il si
2. Tabella 3 3 Tipo di luce emessa e classe di sicurezza dei pi comuni scanner laser Anche se la classe 2 di sicurezza non comporta rischi oggettivi prefe ribile usare laser di classe 1 che sono assolutamente sicuri Inoltre buona prassi rendere l iterazione tra un sensore e l ambiente non rilevabile all uomo quindi preferibile utilizzare laser infrarossi che non sono visibili all occhio umano L unico modello che non rispetta le caratteristiche ricercate il SICK LMS 400 mentre tutti gli altri sono di classe 1 con emissione di luce infrarossa 3 2 Posizionamento in ambienti indoor Nella Sezione 2 2 7 stato brevemente introdotto il problema della localizza zione e del posizionamento Si introducono ora alcuni metodi utilizzati per il posizionamento in ambienti indoor senza il quale non sarebbe possibile rendere autonoma la pianificazione e l esecuzione di percorsi Non esiste un metodo di posizionamento che sia in assoluto migliore di altri e spesso necessario combinare pi metodi per ottenere stime della posi zione affidabili Si possono per individuare due categorie in cui suddividere i metodi utilizzati e Posizionamento relativo e Posizionamento assoluto x Il posizionamento relativo ottenibile con l integrazione nel tempo di informazioni odometriche o inerziali E ben noto in letteratura 5 che questo metodo soffre del problema della crescita senza lim
3. 6000 4000 2000 y mm 2 1 2000 a 5 7 6 4000 Lt 1 1 1 1 1 4000 2000 0 2000 4000 6000 8000 x mm Figura 7 8 Posizione dei marker nella mappa l ambiente come tavoli scaffali e armadi In Figura 7 8 mostrata la mappa dei marker sovrapposta a quella dell ambiente subito evidente che il si stema di localizzazione installato non copre tutto l ambiente disponibile ma solo una zona di esso ritenuta sufficientemente spaziosa per i test da con durre La copertura di una zona maggiore sarebbe inoltre stata di ostacolo alla normale attivit del laboratorio in cui i test sono stati svolti Si noti che qualora si volesse estendere la zona coperta sarebbe necessario posizionare altri marker sul soffitto e ripetere il processo di calibrazione aggiungendo alle immagini precedentemente rilevate quelle registrate con i nuovi tag Per valutare la bont della calibrazione ottenuta si sono effettuati alcuni percorsi guidando manualmente la carrozzina In Figura 7 9 visualizzato un percorso piuttosto complesso che stato realizzato Il percorso risulta ben distinguibile e anche la coerenza con la mappa evidente non ci sono casi di false rilevazioni o errori sistematici tali da portare la posizione della carrozzina fuori dallo spazio considerato Si notano per alcuni errori di posizionamento locali ovvero de
4. Figura 5 17 Posizione x y e z della telecamera nel sistema di riferimento marker in un percorso rettangolare Capitolo 5 Localizzazione con landmark artificiali 100 Posizione Marker Centrale 230 70 5 37mm 236 94 7 13mm 1418 88 1 27mm Angolo Nord Ovest 658 44 4 56mm 575 40 6 04mm 1465 13 8 84mm Angolo Nord Est 746 25 4 75mm 583 73 5 65mm 1480 71 7 68mm Angolo Sud Ovest 639 78 3 47mm 537 62 7 50mm 1463 45 5 06mm Angolo Sud Est 611 34 6 69mm 391 27 7 25mm 1535 00 5 71mm Posizione Marker a Centrale 91 38 0 03 8 89 0 28 171 02 0 22 Angolo Nord Ovest 179 43 0 11 0 36 0 23 178 52 0 25 Angolo Nord Est 179 37 0 07 0 90 0 24 179 21 0 18 Angolo Sud Ovest 178 09 0 10 0 21 0 16 177 36 0 26 Angolo Sud Est 177 81 0 13 2 09 0 24 179 00 0 27 Tabella 5 2 Posizione e orientamento della telecamera rispetto al marker posto al centro e negli angoli dell immagine 5 5 Realizzazione del sistema di localizzazione 101 forma delle matrici di rototraslazione cfr Equazione 5 10 Le uniche ope razioni numeriche che si effettuano sono relative al calcolo dei valori dell u tilma colonna e anche se coinvolgono moltiplicazioni e somme di numeri di ordine di grandezza differente trasl
5. 179 21 0 18 Angolo Sud Ovest 178 09 0 10 0 12 0 15 177 35 0 26 Angolo Sud Est 177 84 0 12 2 13 0 25 179 08 0 26 Tabella 5 1 Posizione e orientamento del marker posto al centro e negli angoli dell immagine rispetto alla telecamera QUOIZEezzIfed0 Ip eW9 SIs pp FSUOIZEZzZI eoy G G a6 96 Capitolo 5 Localizzazione con landmark artificiali 400 T T pE a HHHH 300 le 200 f 100 F 100 pt tee a HHH 1 i T P AHH HHHH 400 600 400 200 0 200 400 x mm Figura 5 12 Posizione x e y del marker in coordinate telecamera in un percorso rettangolare 1800 1700 1600 z mm 1500 1400 Figura 5 13 Posizioni x y e z del marker in coordinate telecamera in un percorso rettangolare 5 5 Realizzazione del sistema di localizzazione 97 sufficiente creare la seguente matrice Ut u2 U3 u1 uo ug ltz ty tz TM v u2 U3 v1 v2 v3 te ty tz 5 10 WI W2 W3 wi we ws tps ty tz 0 0 0 1 che a sua volta una matrice di rototraslazione omogenea del tipo Uy VY Wi tr do z t Mef Foy 5 11 uz U3 W3 tz 0 0 0 1 L ultima colonna di questa matrice rappresenta la posizione della telecamera nel sistema di riferimento solidale con il marker possibile estrarre gli angoli a 8 di yaw pitch e roll che descrivono la rotazi
6. re 5 9 e 5 10 sono riportate le nuvole di punti che rappresentano le posizioni rilevate per il marker in posizione centrale e nei quattro angoli considerati rispettivamente in due dimensioni considerando le sole coordinate x e y e in tre dimensioni aggiungendo anche la coordinata z Un ulteriore prova stata compiuta muovendo il marker lungo un percor so di forma rettangolare con lati di circa 600mm e 690mm alcune immagini sono visibili in Figura 5 11 Con riferimento alla Figura 5 12 che riporta le posizioni del marker rispetto al sistema di riferimento solidale con la teleca mera nelle sole coordinate x e y si pu notare come il percorso risulti ben definito Osservando invece la Figura in cui stata aggiunta la coor dinata z si pu notare come questa sia decisamente pi rumorosa sempre considerando gli errori in valore assoluto delle altre due considerate come verificato precedentemente per i casi statici Sistema di riferimento marker Per conoscere la posizione della telecamera nel sistema di riferimento del marker necessario invertire la matrice che descrive la posizione e l orien tamento del marker rispetto al sistema di riferimento della telecamera cfr Equazione 5 1 Data la particolare forma delle matrici di rototraslazio ne per realizzare l inversione della matrice illustrata nell Equazione 5 8 5 5 Realizzazione del sistema di localizzazione
7. necessario conoscere e rappresentare la mappa del luogo in cui si opera o disporre di un sistema di riconoscimento dei luoghi raggiunti ad esempio basandosi su landmark attivi o passivi Nell eseguire il percorso auspicabile che il sistema di evitamento ostacoli sia attivo Considerando la difficolt di inte grare le informazioni conosciute sull ambiente con quelle che si acquisiscono mano a mano come gli ostacoli imprevisti raro che nelle funzionalit offerte sia prevista la possibilit di ripianificare percorsi integrando le nuove informazioni sull ambiente Come facile immaginare possibile far interagire la modalit semiaut matica con quella automatica lasciando all utente la scelta o inserendo dei metodi automatici di cambio modalit 2 2 4 Dispositivi di comando I dispositivi di comando tradizionali di una carrozzina elettrica sono il joy stick e una serie di pulsanti direzionali A questi sono stati aggiunti in ambito di ricerca altre interfacce di comando come e Comando vocale grazie alla disponibilit di hardware e software sul mercato e g SENARIO 21 e Tracciamento dell attivit oculare tramite l uso di elettrodi o teleca mere e g Siamo 32 e Riconoscimento dell orientamento e posizione della testa e g Mada rasz wheelchair 29 e Intelligent Wheelchair System dell universit di Osaka 23 Si intuisce facilmente che questi metodi di comando non son
8. La fuzzyficazione dei dati contenuti nei messaggi di tipo MSG_FROM_ JOYPAD_BRIEF avviene con l insieme di insiemi fuzzy FWRWSPEEDREAD e RX LXSPEEDREAD precedentemente introdotti per la guida con il joystick Anche i predicati definiti sono molto simili a quelli introdotti per il joystick a titolo 6 2 Componenti software 121 MSG_FROM_MOTION_BRIEF MotorExpert BrianExpert MSG_FROM_BRIAN MSG_FROM_MOTION_INFO MSG_FROM_JOYPAD_ BRIEF MSG_FROM JOYPAD_INFO JoypadExpert Figura 6 6 Schema a blocchi del sistema con i membri BrianExpert MotorExpert e JoypadExpert di esempio se ne riportano solo alcuni FwRwSpeedJoySteady D joyfwrw STEADY FwSpeedJoyVerySlow D joyfwrw VSLOWFW LxSpeedJoyFast D joyrxlx FASTLX LxSpeedJoyVeryFast D joyrxlx VFASTLX Il comportamento FollowJoypadMotion analogo a FollowJoystick Motion e permette di copiare sulle uscite del controllore i movimenti imposti con il joypad Ad esempio alcune regole sono FwRwSpeedJoySteady gt fwrwcmd STEADY FwSpeedJoyVerySlow gt fwrwcmd VSLOWFW LxSpeedJoyFast gt rxlxcmd FASTLX LxSpeedJoyVeryFast gt rxlxcmd VFASTLX La mutua esclusione tra i dispositivi di comando necessaria per garan tire all utente che un solo dispositivo alla volta pu guidare la carrozzina ma allo stesso tempo importante che il meccanismo di scelta del dispositivo sia automatico ovvero che l utente non debb
9. e 27 3 3 1 Classificazione dei pianificatori possibile individuare tre categorie di soluzioni al problema della pianifica zione e Metodi basati su grafi roadmap e Scomposizione in celle cell decomposition e Campi di potenziale potential field I metodi basati su grafi riducono la mappa a un grafo che mantiene solo le informazioni salienti dei collegamenti esistenti tra le zone I metodi ba sati su scomposizione in celle dividono la mappa in celle che possono essere occupate o libere e la ricerca del percorso avviene dunque su una griglia I metodi basati sui campi di potenziale usano un concetto di energia poten ziale di attrazione e repulsione Affidando un potere attrattivo al punto di goal e repulsivo agli ostacoli possibile creare percorsi con le caratteristiche desiderate 3 3 2 Metodi basati su grafi Un primo metodo di ricerca di percorsi su grafi consiste nello scegliere un insieme di punti nella mappa dell ambiente in modo che essi non siano nello spazio occupato dagli ostacoli Questi punti rappresentano i nodi del grafo Gli archi tra i nodi vengono generati secondo un criterio di visibilit tra 34 Capitolo 3 Panoramica sulla robotica mobile Figura 3 7 Grafo di visibilit su una mappa di esempio Si pu notare con la differente scelta dei punti pu compromettere la raggiungibilit di una zona Nella figura b l arco tratteggiato non fa parte del grafo di visibilit a causa dell inter
10. 6 2 7 Pianificazione ed esecuzione di percorsi La pianificazione di percorsi un attivit che coinvolge l utente il sistema di localizzazione e un modulo di pianificazione L utente deve specificare il punto di destinazione da raggiungere il sistema di localizzazione neces sario per specificare il punto di partenza della pianificazione e per gestire 6 2 Componenti software 135 Vesecuzione del percorso mentre il pianificatore il modulo che effettiva mente svolge il compito di cercare un percorso su una mappa da un punto di partenza a un punto di arrivo Il membro che si occupa della pianifica zione di un percorso SpikeExpert SequencerExpert gestisce la sequenza di operazioni che portano dalla richiesta di pianificazione alll esecuzione del percorso e GuiExpert si occupa dell interazione con l utente Per prima cosa importante definire il funzionamento del membro Spi keExpert Come il nome del membro facilmente ricorda il pianificatore in uso Spike presentato nella Sezione 6 1 2 SpikeExpert un membro molto semplice che attende l arrivo di un messaggio di richiesta di pianifi cazione e risponde con un messaggio che descrive il piano prodotto oppure con un messaggio che comunica l impossibilit di costruire un piano Pi in dettaglio il messaggio atteso da SpikeExpert MSG_FROM_SEQUENCER_ PLAN _REQUEST mentre i due messaggi che possono essere prodotti sono MSG_FROM_SPIKE_VIA POINT_L
11. moduli di competenza di Maes 30 Si cita per completezza l architettura proposta da Arkin con il nome Motor Schema 1 senza per trattarne ulteriormente la struttura L architettura subsumption un architettura reattiva basata sulla scom posizione del comportamento globale desiderato in comportamenti elemen tari organizzati a livelli I livelli pi alti sono quelli con grado di astrazione pi alto e g ragionamento sul mondo previsione del cambiamento dell am biente i livelli pi bassi si occupano dei compiti pi basilari e g evitare collisioni Tutti i comportamenti sono eseguiti in parallelo quindi tutti gli obiettivi che i comportamenti hanno sono perseguiti in modo concorrente Ogni singolo comportamento realizzato come una macchina a stati finiti estesa AFSM I comportamenti sono collegati tra loro in quanto le uscite di un modulo possono essere ingresso di altri moduli Un modulo pu sop primere l uscita di un altro ad esempio un modulo che svolge il compito di evitare ostacoli pu inibire in situazioni critiche le uscite di tutti i moduli che propongono movimenti potenzialmente pericolosi Analogamente an che gli ingressi dei moduli possono essere soppressi da altri moduli ma in 3 4 Architetture software per il controllo 39 questo caso il valore di ingresso al modulo pu essere fornito da chi effettua la soppressione Ogni livello costituito da pi AFSM collegate tra loro e l insi
12. possibile per introdurre alcune semplificazioni che possono migliorare la precisione del sistema Considerando un sistema semplice in cui un oggetto mobile si sposta su un piano parallelo al marker si nota che il problema della localizzazione non a sei gradi di libert ma si riduce a tre gradi di libert Sono infatti sufficienti le coordinate tz ty e la rotazione amp intorno all asse z nel sistema di riferimento del marker per descrivere completamente la posizione e l o rientamento dell oggetto Si pu inoltre affermare che i restanti tre gradi di libert restano costanti La distanza t del marker dal sistema di riferimento della telecamera e gli angoli 8 e y di orientamento che risultavano essere i pi rumorosi dovrebbero essere costanti in quanto il moto relativo tra i due sistemi non li coinvolge La soluzione pratica per limitare la rumorosit dei dati forniti dall analisi delle immagini con il sistema di fiducial marker consiste nel sostituire i valori 3 y e t nella matrici PE con i valori costanti 8 e 7 e La nuova matrice che descrive la posizione del marker nel sistema di riferimento della telecamera risulta Uy Vi Wi tr ee tet ee 5 14 U3 U3 W3 tz 0 0 0 1 Estendendo il problema al caso pi generale in cui sono presenti pi mar ker necessario conoscere i valori costanti 8 e 7 e tz associati a ogni marker presente nel sistema La stima della posizione della telecamera rispetto a un marker
13. 190 8 5 Funzionalit estese 2 191 8 6 Controllo della carrozzina tramite BC 193 Bibliografia 195 Capitolo 1 Introduzione Il presente lavoro si colloca nell ambito della robotica mobile disciplina che si occupa di studiare e progettare veicoli autonomi dotati di funzionalita intelligenti ovvero di caratteristiche che li rendono in grado di operare senza bisogno d intervento umano o riducendo i comandi che l uomo deve impartire In particolare si sono applicate le tecniche della robotica mobile allo sviluppo di una carrozzina d ausilio ai disabili motori estendendo le funzionalit di una carrozzina elettrica al fine di studiare come avvicinar la alle esigenze degli utenti che trovano difficolt nell utilizzare le normali carrozzine esistenti Lo scopo della presente tesi stato progettare e realizzare una carrozzi na elettrica che rendesse disponibili funzionalit aggiuntive rispetto a quelle offerte dai prodotti presenti sul mercato partendo proprio da una carroz zina commerciale a cui apportare modifiche In particolare si scelto di estendere le capacit della carrozzina con funzionalit di guida semiautono ma o assistenza alla guida e di guida autonoma L assistenza alla guida una funzionalit che permette di muovere la carrozzina in sicurezza ad esempio evitando collisioni aggirando ostacoli e aiutando l utente in al cune manovre La guida autonoma perm
14. Om 4m 50 m 5mm Tabella 3 1 Caratteristiche tecniche dei pi comuni scanner laser 1 I 0929SO Ip OJUBUTeAVIII I Jad 1IOSUOS TE GC Capitolo 3 Panoramica sulla robotica mobile 26 Modello Frequenza scansioni Peso Dimensioni Caratteristiche elettriche LMS 200 75 Hz 4 5 Kg 156 x 155 x 210 mm 24V DC typ 2A max 6A LMS 211 75 Hz 9 Kg 265 x 351 x 202 mm 24V DC typ 2A max 6A LMS 221 75 Hz 9 Kg 351 x 265 x 194 5 mm 24V DC typ 2A max 6A SICK LMS 291 75 Hz 9 Kg 156 x 155 x 210 mm 24V DC typ 2A max 6A LMS 400 150 500 Hz 2 3 Kg 129 9 x 179 x 106 7 mm 24V DC max 1A LD OEM 5 20 Hz 3 2 Kg 222 x 120 5 x 115 mm 24V DC max 1 5A LD PDS 5 20 Hz 3 2 Kg 222 x 120 5 x 115 mm 24V DC max 1 5A LD PeCo 10 Hz 6 Kg 365 x 350 x 180 mm 24V DC max 1 5A HOKUYO URG 04LX 10 Hz 0 16 Kg 50 x 50 x 70 5V DC typ 0 5 A max 0 8 A SIEMENS LS4 25 Hz 2 Kg 130 x 195 x 135 mm 24V DC 0 3 A Tabella 3 2 Caratteristiche tecniche dei pi comuni scanner laser 2 3 2 Posizionamento in ambienti indoor 27 Modello Tipo di luce emessa Classe di sicurezza LMS 200 LMS 211 l 1 LMS 221 Infrarossa Classe LMS 291 ICK n LMS 400 Visibile A 650nm Classe 2 LD OEM LD PDS Infrarossa A 905nm Classe 1 LD PeCo HOKUYO URG 04LX Infrarossa A 785nm Classe 1 SIEMENS LS4 Infrarossa A 905nm Classe 1
15. me 200 Figura 5 20 Grafo delle relazioni tra i sistemi di riferimento dei marker con archi pesati ed estrazione dell albero di copertura di peso massimo L unico vincolo rappresentato dalla sequenza di esecuzione come prima operazione necessario stimare i parametri di correzione successivamente possibile stimare la posizione e l orientamento relativo dei marker con il metodo appena illustrato 5 6 4 Relazioni multiple tra marker Nella Sezione 5 4 3 si introdotta la configurazione a grafo delle relazio ni tra marker In linea teorica qualunque albero di copertura permette di giungere alle stesse relazioni tra sistema di riferimento assoluto e marker Considerando per il rumore presente sui dati reali necessario scegliere un albero che offra una certa garanzia sulla precisione delle relazioni costruite Il grafo di Figura 5 5 pu essere arricchito di informazioni utili a tale scopo Ricordando che dalle matrici Ty teoriche si passati a usare 7 M i un infor mazione utile costituita dal numero n di matrici T Mi utilizzate per stimare la relazione media Questa informazione pu essere aggiunta all arco della matrice Tha Nella scelta di un albero di copertura opportuno evitare gli archi con peso basso in quanto questo indica che la relazione tra i due marker stata calcolata poche volte e le garanzie sulla sua precisione sono dunque inferiori in quanto la varianza
16. mostrato in Figura 4 12 Si noti che il sensore non posizionato al centro del piano ma di lato per permettere di alloggiare comodamente il cavo USB e il cavo di alimentazione 4 4 2 Posizionamento della telecamera La telecamera deve inquadrare il soffitto ma non sufficiente posizionarla in modo che il suo obiettivo sia direzionato verso l alto Infatti se la teleca mera viene posizionata in basso sulla carrozzina possibile che la presenza di persone nell ambiente in cui si muove la carrozzina ostruisca in parte o completamente la zona inquadrata Per minimizzare questo problema ne cessario posizionare la telecamera a un altezza di circa 1 5m dal suolo cos da minimizzare la possibilit di occlusioni La telecamera risult cos pi 72 Capitolo 4 Progetto di una carrozzina robotica vicina al soffitto da inquadrare garantendo una migliore definizione dell im magine a scapito pero di un minor campo visivo Una struttura di questa altezza per montare la telecamera garantisce comunque il passaggio agevole della carrozzina negli ambienti in quanto tipicamente i soffitti delle normali abitazioni sono alti almeno 2 5m e le porte almeno 2m 4 4 3 Progetto della struttura Si scelto di costruire la struttura di supporto per i componenti da aggiun gere alla carrozzina con i profilati di alluminio prodotti dalla ditta Item in quanto offrono un vasto assortimento di componenti per il montaggio La disp
17. con cui si muove la carrozzina In questo modo possibile creare regole di com portamento pi complesse che permettono di reagire meglio nelle situazioni in cui la carrozzina opera Ad esempio qualora il punto da raggiungere sia frontale rispetto alla carrozzina e vicino ma la carrozzina stia ruotando velocemente in senso orario necessario imporre una rotazione antioraria per evitare di allontanarsi dalla traiettoria che porta a raggiungere il punto di destinazione AND ViaPointNear AND ViaPointN RotVeloceOrario gt rxlxcmd VFASTLX Il comportamento FollowViaPoint puo essere considerato allo stesso modo di un dispositivo di comando della carrozzina e pu essere posto allo stesso livello dei comportamenti che gestiscono le proposte del joystick e del 140 Capitolo 6 Software di controllo readmode Livello 2 readfwrw readrxlx n joypadfwrw ObstacleAvoidMinDist joypadrxix mindist_left_zone_1 mindist_left_zone_n mindist_right_zone_1 ws fwrwemd mindist_right zone _n daiewemd rxlxemd rxlxemd rho_to_via_point Livello 1 angle_to_via_point executing_path ModeCmdAuto spssd moduls FollowJoystickMotion d l il cae FollowJoypadMotion speed_module_prev FollowViaPoint speed_angle_prev Figura 6 16 Controllore fuzzy a 2 livelli per la gestione di joystick joypad guida autonoma ed evitamento ostacoli joypad ovvero FollowJoystickMotion e FollowJoypadMotion I compor tamenti d
18. lizzare correttamente e agevolmente i dispositivi di comando presenti sul le carrozzina elettriche attualmente in commercio il presente lavoro vuole contribuire al superamento di questa limitazione La ricerca scientifica in ambito robotico si spesso interessata alle problematiche di questa cate goria di persone cercando di sviluppare carrozzine con funzionalit tipiche dei robot mobili In 38 42 54 sono illustrate le caratteristiche salienti di decine di carrozzine dalle funzionalit estese progettate e realizzate dagli anni novanta fino a oggi Molti di questi prototipi sono dotati di funzionalit evolute e interessanti tra cui evitamento ostacoli e guida autonoma come ad esempio nei lavori descritti in 29 11 37 7 altri rivolgono la loro attenzione principalmente all estensione delle modalit con cui possibile comandare la carrozzina utilizzando ad esempio sistemi di riconoscimento vocale 28 o rilevazione dei movimenti della testa 23 32 Molti di questi rappresentano tuttavia vere e proprie piattaforme ro botiche mobili adattate al trasporto di un utente Essi assumono dunque il ruolo di utili prototipi da laboratorio ma difficilmente sarebbe possibile immaginarne un uso pratico in situazioni reali a causa di vistosi limiti in termini di praticit e costo Ad esempio facile immaginare che quando l accesso al sedile di guida della c
19. maggiormente verso una o l altra proposta 6 Defuzzyficazione dei risultati Questa fase duale rispetto a quella di fuzzyficazione dei dati Essa permette infatti di tradurre le azioni proposte dai comportamenti in valori numerici utilizzabili dagli attuatori Come nel caso della fuzzyfi cazione vengono definiti degli insiemi fuzzy e viene specificato un tipo di dato fuzzy che raggruppa pi insiemi fuzzy Le variabili di uscita sono associate a un tipo di dato fuzzy e i valori proposti dai com portamenti sono legati alle singole funzioni di attivazione Ad esem pio possiamo ipotizzare di definire una variabile Velocit e associar la al tipo fuzzy TVELOCIT composto dalle funzioni caratteristiche 46 Capitolo 3 Panoramica sulla robotica mobile LENTA MEDIA VELOCE Le funzioni caratteristiche utilizzabili come uscita sono solo di tipo impulsivo e la defuzzyficazione basata sulla media pesata dei valori proposti Se ad esempio i valori proposti per Velocit fossero 0 4 MEDIA e 0 6 VELOCE con funzioni caratte ristiche di MEDIA e VELOCE impulsive centrate rispettivamente su 50 e 100 si otterrebbe come dato sintetico defuzzyficato un valore di 0 4 50 0 6 100 80 da inviare agli attuatori Un vantaggio dell architettura di controllo sviluppabile con BRIAN il legame lasco che si instaura tra i comportamenti a differenza delle archi tetture presentate nella Sezione 3 4 i vari comportamenti sono specificati in
20. possibile scegliere di aggiungere sen sori pi semplici ed economici come i sonar per coprire le zone mancanti Un altra soluzione possibile che ridurrebbe ulteriormente i costi di realiz zazione quella di rinunciare completamente agli scanner laser e utilizzare solo sensori sonar Ricordando per che il profilo rilevato dagli scanner laser viene utilizzato anche per rappresentare gli ostacoli dinamici all atto della pianificazione si conlcude facilmente che la rinuncia all uso dei sensori laser renderebbe impossibile sviluppare questa funzionalit in quanto i sensori sonar non sono sufficientemente precisi per costruire una rappresentazione metrica dell ambiente I dati forniti dal sensore inerziale e giroscopico utilizzato sono stati sfrut tati in modo molto limitato infatti di tutti i dati disponibili ovvero le ac celerazioni lungo i tre assi le velocit di rotazione intorno ai tre assi e le intensit del campo magnetico l unico che effettivamente stato utilizzato nel controllo il dato relativo alla rotazione della carrozzina Si rinun ciato a utilizzare i dati di accelerazione per stimare la velocit raggiunta in quanto con il metodo utilizzato il valore della velocit divergeva molto rapidamente rendendo tale dato inutilizzabile per il controllo Come possibile sviluppo da prendere in considerazione la possibilit di cercare sul mercato e acquistare un sensore meno complesso e quindi pi economic
21. una carrozzina principalmente legata alla gestione del moto della carroz zina stessa e al convogliamento e analisi delle informazioni sensoriali Le operazioni che l utente deve svolgere con il computer sono molto limitate e riguardano ad esempio la selezione di una destinazione per il movimento autonomo Si scelto quindi di utilizzare un monitor di piccole dimensioni con funzionalit touch screen e altoparlante integrato Con un dispositivo di questo tipo possibile creare interfacce utente semplici costituite da pochi pulsanti grafici di grandi dimensioni che possono essere selezionate con la pressione di un dito sullo schermo rendendo del tutto superflua la necessit di utilizzare le classiche periferiche di input Il monitor scelto per questo scopo il 700YYV prodotto dalla Xenarc Ha una diagonale di 7 con risoluzione nativa di 800x480 ed dotato di un altoparlante integrato L ali mentazione che il monitor accetta compresa tra 11 e 24V e il suo consumo di corrente usando l alimentazione a 24V di 0 74A 4 2 6 Dispositivi di comando Un dispositivo molto semplice che permette di comandare la carrozzina a distanza e quindi ad esempio di farla guidare dall utente anche quando non a bordo del veicolo o di lasciarla guidare a qualcuno che lo assiste il joypad senza fili RumblePad2 prodotto da Logitech visibile in Figura 4 61 Questo dispositivo si interfaccia al computer tramite un modulo di ricezi
22. 185 0 036 0 034 0 032 0 028 Tempo di attivazione s 0 026 0 024 0 022 rer 100 200 300 400 500 Numero attivazione Figura 7 29 Tempi di esecuzione del membro JoypadExpert 0 4 Tempo di attivazione s 100 200 300 400 500 600 Numero attivazione Figura 7 30 Tempi di esecuzione del membro VisionExpert la gestione del sistema di localizzazione sia il pi pesante a livello di tempi di calcolo In Figura 7 30 sono riportati i tempi di esecuzione del mem bro VisionExpert Il tempo teorico di esecuzione di 66ms corrispondenti all analisi di 15 fotogrammi al secondo ma subito evidente che in molti casi l analisi richiede tempi nettamente superiori a volte anche di alcuni decimi di secondo Su 557 attivazioni considerate il tempo di esecuzione medio risultato pari a 0 074ms con una deviazione standard associata di 20ms VisionExpert dunque il candidato principale a essere spostato su un altra unit di calcolo dove potrebbe sfruttare molte pi risorse e non influenzerebbe l esecuzione dei membri dedicati al controllo della carrozzina 186 Capitolo 7 Risultati sperimentali Capitolo 8 Conclusioni e sviluppi futuri In questo capitolo si svolge l analisi dei punti di forza e si presentano pos sibili miglioramen
23. 48 49 50 3 3 Pianificazione di percorsi La risoluzione del problema della pianificazione del moto dei robot robot motion planning uno degli elementi fondamentali per la creazione di robot autonomi L obiettivo generale della pianificazione del moto dei robot quello di trovare tecniche mediante le quali un robot possa automaticamente determinare un percorso da una posizione iniziale a una finale Questa definizione del problema del tutto generale ed valida sia per robot mobili sia per manipolatori Le condizioni aggiuntive che governano la ricerca di un percorso sono http www ubisense net 3 3 Pianificazione di percorsi 33 e Evitare urti con ostacoli presenti nello spazio di lavoro e Prevedere un margine di sicurezza nell evitare gli ostacoli e Garantire la realizzabilita del percorso considerando i vincoli cinema tici del robot e Ottenere un percorso il pi possibile breve e rapido La pianificazione si occupa solo del calcolo del percorso e non dell inse guimento rimandando al controllore del robot il compito di attuare i mo vimenti necessari ed eventualmente comunicare la necessit di una nuova pianificazione del percorso Il problema della pianificazione di percorsi stato largamente affrontato e molte soluzioni sono state proposte In questa sezione sono presentate le linee generali delle soluzioni proposte per approfondimenti si rimanda a 35
24. 5 0 0044 3 1365 2252 4 0 2847 3 0774 2303 6 0 0022 3 1407 2238 7 0 0529 3 0620 2263 7 0 0575 3 1096 2246 4 0 0655 3 0987 gt CO NT DP Ot BRB wy rm rR oO Tabella 7 1 Parametri costanti rilevati per i nove marker utilizzati stato necessario registrare alcune immagini riprese da diverse posizioni e angolazioni di una scacchiera di cui nota la lunghezza del lato della singola cella Sono state utilizzate 36 immagini per la calibrazione sei delle quali sono mostrate in Figura 7 3 La matrice dei parametri intrinseci ottenuta la seguente fi sh ze 658 0 0 321 6 K 0 fo yel 0 6625 258 2 0 0 1 0 0 1 L uso di questo tool di calibrazione ha inoltre permesso di stimare i parametri di compensazione della distorsione radiale dovuta all ottica della carrozzina La telecamera calibrata stata montata sulla carrozzina e dopo aver posizionato nove marker sul soffitto sono state registrate 3937 immagini di cui alcune sono riportate in Figura 7 4 Con queste immagini stato pos sibile stimare i parametri costanti delle matrici che descrivono la posizione di ogni tag rispetto alla telecamera ovvero i valori 2 e i I risultati ottenuti sono riportati in Tabella 7 1 162 Capitolo 7 Risultati sperimentali Sistema di riferimento assoluto W AM TM 397 es SM Tu 55 Figura 7 5 Grafo delle relazioni
25. 5 6 3 Procedure di localizzazione e riferimento tra i sistemi 5 6 4 Relazioni multiple tra marker Software di controllo 6 1 Compiti del software di controllo 6 1 1 Comunicazione tra i membri 6 1 2 Pianificazione di percorsi 6 2 Componenti software 6 2 1 Guida con joystick Tae ri 6 2 2 Guida con joypad 6 2 3 Riproduzione di file audio 6 2 4 Evitamento ostacoli 6 2 5 Informazioni sul moto della carrozzina 6 2 6 Rilevamento posizione in ambienti indoor 6 2 7 Pianificazione ed esecuzione di percorsi 6 2 8 Interfaccia grafica 6 2 9 Gestione errori 6 2 10 Commento sull architettura 6 2 11 Temporizzaziong 6 2 12 Produzione di log noes ed s amp s 7 Risultati sperimentali 157 7 1 Struttura di supporto LL 157 7 2 Guida della carrozzina LL 159 7 3 Localizzazione basata su marker 0 160 7 4 Guida semiautonomal eee enne see te EE 165 7 5 Guida autonoma LL 177 7 6 Tempi di esecuzione LL 183 8 Conclusioni e sviluppi futuri 187 8 1 Conclusioni dose aa A a 187 8 2 Sensori utilizzati 2 188 8 3 Sistema di localizzazione LL 189 8 4 Software di controllo 2
26. 500 1000 1500 2000 2500 x mm Figura 7 18 Percorso seguito dalla carrozzina per evitare un ostacolo La freccia indica la direzione del movimento indipendente dalla localizzazione ed quindi disponibile anche in ambienti ignoti Qualora l utente comandi di ruotare in una direzione tale da portare a un impatto con un ostacolo il comando viene ignorato come illustrato schematicamente in Figura 7 19 Questa azione combinata con tutte le precedenti quindi qualora fossere presenti ad esempio un ostacolo frontale e uno laterale sinistro l unico movimento possibile sarebbe una rotazio ne verso destra in quanto sia la rotazione verso sinistra che il movimento frontale sarebbero impediti al fine di evitare collisioni Qualora l ostacolo frontale fosse molto vicino anche la rotazione verso destra sarebbe impedita in quanto porterebbe la parte anteriore sinistra della carrozzina a collidere In questo caso l unico movimento permesso sarebbe quello all indietro Si noti che il sistema di evitamento ostacoli non pu intervenire sui movimenti all indietro dato che la zona posteriore della carrozzina non coperta da alcun sensore di rilevamento ostacoli Il sistema proposto non da considerarsi completo e non in grado di evitare correttamente tutti gli ostacoli che si possono presentare durante l e secuzione di un percorso e di impedire le collisioni in ogni caso Innanzitutto bisogna considerare che per come sono
27. 93 z Figura 5 8 Marker negli angoli dell immagine Angolo Nord Ovest Angolo Sud Ovest e 400 Angolo Sud Est e Angolo Nord Est e Centrale e 200 E 0 E gt 200 400 600 500 0 500 x mm Figura 5 9 Posizione 2D del marker in coordinate telecamera nelle cinque posizioni considerate 94 Capitolo 5 Localizzazione con landmark artificiali Angolo Nord Ovest e Angolo Sud Ovest e Angolo Sud Est e Angolo Nord Est e Centrale 000 Figura 5 10 Posizione 3D del marker in coordinate telecamera nelle cinque posizioni considerate Si noti che la scala dell asse z differente da quella degli altri assi per poter visualizzare meglio la distribuzione dei punti ottenuta Figura 5 11 Alcune immagini del movimento rettangolare realizzato Posizione Marker Y z Centrale 9 23 0 07 mm 8 96 0 01 mm 1456 87 0 94 mm Angolo Nord Ovest 643 51 1 91 mm 543 79 1 64 mm 1483 75 4 41 mm Angolo Nord Est 746 24 4 75 mm 583 73 5 65 mm 1480 71 7 68 mm Angolo Sud Ovest 651 98 0 97 mm 447 94 0 66 mm 1488 08 2 28 mm Angolo Sud Est 651 50 1 25 mm 440 66 0 86 mm 1504 84 2 93 mm Posizione Marker lo b y Centrale 91 38 0 03 8 76 0 22 170 90 0 28 Angolo Nord Ovest 175 43 0 11 0 87 0 23 175 52 0 25 Angolo Nord Est 179 37 0 07 0 90 0 24
28. Fluss dei percorsi ert S cerExpert HokuyoExpert SpikeExpert Grane equen left i right MSG_FROM_p POSE_ L ACTU IAL_POs MSG_FROM_SEQUENCER VIA_POINT INFO MSG_FROM I_SEQUENCER_ EXECUTING PATH lt 1 gt MSG_FROM POSE_ UNKNOW_ACTUAL Pos MSG_FROM SEQUENCER_ i 4 EXECUTING PATH lt 0 gt MSG FROM Po ACTUAL PoS MSG _FROM SEQUENCER_ VIA_POINT _INFO MSG_FROM _SEQUENCER_ EXECUTING PATH lt 1 gt in cui l esecuzione dei percorsi viene interrotta i A Figura 6 20 Flusso dei messaggi nel caso i e successivamente ripresa 146 Capitolo 6 Software di controllo SequencerExpert HokuyoExpert SpikeExpert BrianExpert i left i right i i MSG_FROj i 7 ASA pos fai f MSG_ ROM SEQUENCER VIA POINT_INFO MSG_FROM MSG_FROM 39_FROM _SEQUENCER_ UNKNOW Ac OSE XECWTING PATH lt gt ACTUAL Posi an Ser MSG FROM SEGUE i H FROM _ NCER EXECUTING PATH oe i MSG_FROM PO ati ACTUAL POS di MSG GOAL xy M _XY MSG_FRo AL X MSG FROM s i ASK FOR SEGUENCER MSG_FROM pose SUR TUAL Pos MgG_FROM_HOKUYO_ POINT_LIST MSG_FROM_HOKUYO_ as MSG_FROM Pose POINT_LIS ACTUAL Pos MSG_FROM sed i E I_SEGUE PLAN_REQUBSNO FR Figura 6 21 Flusso dei messaggi nel caso in cui l esecuzione dei percorsi viene interrotta ed necessario ripianificare il percorso 6 2 8 Interfaccia grafica L interfaccia grafica il componente me
29. Giappone 1998 2003 23 interpreta i movimenti della testa con l uso di una telecamera ri volta verso il sedile Una seconda telecamera rivolta verso l esterno permette di inseguire un obiettivo e di interpretare i comandi anche quando l utente non a bordo della carrozzina La volont dell utente 2 3 Progetti esistenti 17 viene confrontata con la possibilita di muoversi in una certa direzione basandosi sia su una mappa topologica sia sulle rilevazioni dei sonar La localizzazione affidata a un sistema di integrazione dei dati odo metrici Grazie all uso della telecamera esterna il sistema in grado di riconoscere la presenza dei pedoni e muovere la carrozzina in modo da evitare le collisioni Hephaestus TRAC Labs USA 1999 2002 44 prevede comportamenti di evitamento ostacoli E compatibile con pi modelli di carrozzine anche di diverse case costruttrici e non richiede nessuna modifica al sistema di controllo dei motori Siamo Universit di Alcala Spagna 1999 2003 32 stata utilizzata con vari dispositivi di input controllo vocale riconoscimento di movimen ti della testa movimento oculare rilevato con elettrodi Prevede un sistema di evitamento ostacoli con scanner laser e sensori a infrarossi in grado di riconoscere anche avvallamenti o pendii ripidi Smart Wheelchair Universit di Kanazawa Giappone 2000 40 in grado di localizzarsi utilizzando dei radiofar
30. Mr Brian presentata nel la Sezione 3 6 come pi adatta allo sviluppo del controllore Grazie alla 110 Capitolo 6 Software di controllo modularit che caratterizza questa architettura il processo di progetto e la realizzazione del controllore risulta semplificato e facilmente estendibile Per descrivere l architettura complessiva del software di controllo ne cessario individuare i compiti specifici del software stesso Innanzitutto evidente che il software di controllo deve essere in grado di gestire tutti i dispositivi collegati alla carrozzina ovvero il joystick originale della carrozzi na il joypad senza fili i due scanner laser la telecamera e il sensore inerziale e giroscopico Le informazioni provenienti da tutti questi dispositivi sono utili per controllare il movimento della carrozzina stessa considerando le diverse modalit di funzionamento in cui essa pu operare possibile riassumere i compiti del software come segue e Lettura dei dati relativi alla posizione della leva del joystick e impo stazione del valore di controllo che permette di comandare la carroz zina Infatti il joystick originale della carrozzina rappresenta sia uno dei dispositivi con cui l utente comanda il movimento della carrozzina stessa sia l interfaccia che permette di controllare il moto della car rozzina grazie al circuito presentato nella Sezione 4 3 Il software di controllo deve essere in grado di
31. Un caso precedentemente non considerato ma sicuramente non infrequente quello in cui la struttura pi adatta a descrivere le relazioni tra i marker non sia un albero ma un grafo connesso E infatti possibile che siano disponibili A 4 Mj Mj Mk le relazioni tra tre marker differenti j k m come Im Tma TMa Da queste relazioni possibile creare tutte le relazioni inverse ovvero M Ty gt Tar 8A Si supponga inoltre di conoscere la relazione dal sistema 5 5 Realizzazione del sistema di localizzazione 87 Sistema di riferimento assoluto W Figura 5 5 Esempio di grafo delle relazioni con quattro marker di riferimento assoluto al marker base i TM e dal marker 7 al marker m Tin N In questa configurazione schematizzata in Figura 5 5 possibile indi viduare pi modi per creare la relazione che va dal sistema di riferimento assoluto a quello del marker k Lo stesso vale per il marker j In linea teorica sarebbe sufficiente estrarre un albero di copertura anche casuale del grafo e calcolare le relazioni con il sistema di riferimento assoluto sull al bero Purtroppo a causa del rumore che si pu presentare nei dati rilevati in modo automatico la scelta dell albero di copertura non ininfluente e pu compromettere la precisione del sistema di posizionamento In caso di grafi molto complessi in cui il numero di passaggi intermedi per risalire al sistema assoluto alto l effet
32. campi magnetici o altre tecniche di comunicazione senza fili Due esempi di sistemi di localizzazione indoor sono Ubisense 48 49 50 e StarGazer 19 presentati nei dettagli rispetti vamente nelle Sezioni 3 2 2 e 3 2 3 Ubisense un sistema preciso e affidabile basato su segnali UWB ma al crescere degli spazi da coprire risulta esse re necessario replicare varie volte il sistema con conseguente aumento del costo Inoltre necessario cablare i sensori sia per le necessit di alimenta 78 Capitolo 5 Localizzazione con landmark artificiali zione sia per le comunicazioni che intercorrono tra di essi e la calibrazione di tutto il sistema non banale Anche StarGazer richiedendo di installare nell ambiente dei marker riflettenti comporta un costo proporzionale alla dimensione della zona da coprire Un approccio completamente differente che riduce notevolmente i costi del sistema basato sull uso di telecamere e tecniche di visione artificiale Le tecniche di analisi delle immagini per la localizzazione si possono dividere in tre categorie La prima utilizza le immagini registrate in un ambiente come base di confronto con le immagini acquisite in tempo reale la seconda si basa sulla rilevazione di feature 3D da confrontare con un modello e la terza usa dei fiducial marker o tag posti nell ambiente L uso dei primi due approcci ha degli indiscutibili vantaggi estetici in quanto
33. circuito e il computer di controllo sono e Posizione della leva sul primo asse e Posizione della leva sul secondo asse e Modalit di funzionamento Le informazioni sono le stesse nei due versi ma la loro interpretazione differente i dati trasmessi dal computer al circuito hanno il significato di comando mentre quelli trasmessi dal circuito verso il computer hanno scopo informativo La trama prevista per lo scambio dei i dati molto semplice e composta da 4 byte Figura 4 10 Il primo un campo che svolge la funzione di sin cronizzazione e allo stesso tempo comunica la modalit di funzionamento I 68 Capitolo 4 Progetto di una carrozzina robotica valori ammissibili per questo campo sono FOh che indica la modalit ma nuale e F1h che indica la modalit automatica Il secondo e il terzo byte indicano la posizione della leva rispettivamente dell asse avanti indietro e destra sinistra del joystick o il comando per la carrozzina in base al verso in cui fluisce la trama I valori sono interi senza segno compresi tra 0 e 255 con il valore centrale 128 che corrisponde allo zero logico ovvero alla condizione in cui la leva in posizione centrale Il quarto byte un campo di controllo ed calcolato come somma a modulo 255 dei tre byte iniziali del messaggio Se la verifica del valore del checksum fallisce il cir cuito rifiuta il comando del computer Un comportamento analogo si pu ottenere su
34. comportamento complessivo del sistema ottenuto dall interazione dei singoli comportamenti elementari Agendo direttamente sulle informazioni sensoriali questa architettura risulta estremamente rapida nel reagire ai cambiamenti dell ambiente Il raggiungimento di obiettivi di alto livello non pu per essere garantito in quanto non esiste un modello sul quale verificare che le azioni proposte portino effettivamente a un risultato Per lo stesso motivo l ottimalit della successione di azioni compiute dal sistema non assicurata 38 Capitolo 3 Panoramica sulla robotica mobile Ragionamento sul comportamento degli oggetti Pianificazione dei cambiamenti Identificazione degli oggetti Monitoraggio dei cambiamenti Sensori Attuatori Costruzione delle mappe Esplorazione dell ambiente Circolazione nell ambiente Evitamento degli ostacoli Figura 3 10 Scomposizione orizzontale di un controllore robotico tipica dell architettura reattiva Estensioni dell architettura reattiva L architettura reattiva estremamente dinamica e adatta ad ambienti in rapida evoluzione ma l assenza di un modulo di pianificazione rende limitato il numero di comportamenti globali esprimibili Alcune estensioni sono state proposte come la subsumption architecture la cui scomposizione orizzontale del controllore illustrata in Figura 3 10 di Brooks 8 e l architettura a
35. degli ostacoli rilevato Per creare il messaggio appena descritto necessario convertire i da ti della scansione dei sensori laser espressi in coordinate polari rispetto al sensore stesso in coordinate cartesiane Considerando che ogni sensore la ser produce pi di 600 rilevazioni a ogni scansione si otterrebbero pi di 600 segmenti che descrivono il profilo degli ostacoli rilevati evidente che 142 Capitolo 6 Software di controllo un numero di segmenti cosi elevato potrebbe comportare problemi sia per quanto riguarda il trasporto all interno di un messaggio che diventerebbe eccessivamente lungo sia per la ricerca di un percorso da parte del pianifi catore preferibile creare un messaggio pi semplice che descriva con un numero inferiore di segmenti il profilo degli ostacoli Per fare ci si utiliz zato un metodo di segmentazione ricorsivo Considerando i punti p1 Pn che rappresentano un profilo segmentato possibile tracciare un segmento tra il punto p e pn e individuare il punto pm con 2 lt m lt n 1 tale che la distanza di pm dal segmento pipn massima Se tale distanza su periore a una soglia fissata si aggiunge il punto pm alla lista dei punti che comporranno il profilo finale degli elementi Ricorsivamente si riapplica lo stesso algoritmo ai punti pi Pm Pm Pn ovvero cercando il punto a distanza massima da Pi pm e da PmPn In questo modo si ottiene un profilo segmentato che gar
36. di 1 5 metri 4 2 4 Computer di bordo Per raccogliere ed elaborare i dati sensoriali e produrre l azione di controllo per comandare la carrozzina necessario disporre di un unit di calcolo Do vendo montare il computer a bordo della carrozzina particolare attenzione deve essere posta nella scelta dell hardware per quanto riguarda dimensioni e consumo di corrente Per il progetto RAWSEEDS il Politecnico di Mi 3http www unibrain com http www rawseeds org 4 2 Sensori e componentistica hardware 57 Figura 4 5 Il computer di bordo PCBrick montato in una struttura in profilati di alluminio lano ha assemblato un computer x86 compatibile a cui stato dato nome PCBrick basato su una scheda VIA EN15000 che rispetta lo standard mini ITX 170x170mm e grazie a un ampio dissipatore metallico necessita solo di una piccola ventola per il raffreddamento che risulta assolutamente silenziosa Le interfacce messe a disposizione da questa scheda madre so no numerose tra cui 6 porte USB 2 0 supporto per una porta FireWire scheda Audio a 6 canali integrata connettore Gigabit LAN Ethernet video VGA e due porte PS 2 Il processore utilizzato un VIA C7 con frequenza di clock da 1 5GHz Alla scheda madre sono collegati 1 GB di ram DDR2 e un hard disk da 2 5 da 80GB a 7200 giri al minuto Il PCBrick alimen tato in corrente continua e grazie a una scheda DC DC accetta tensioni di alimentazioni comprese tra
37. di readmode avviene con il tipo di dato fuzzy BOOLEANFLAG readfwrw con FWRWSPEEDREAD e readrxlx con RKLXSPEEDREAD Gli insiemi fuzzy utilizzati sono illustrati in Figura 6 2 Le uscite del con trollore sono i valori di modecmd fwrwcmd e ralxcmd che costituiscono il 6 2 Componenti software 117 BOOLEANFLAG FWRWSPEEDREAD TRUE VFASTRW MEDIUMRW VSLOWRW VSLOWFW MEDIUMFW VFASTFW FALSE FASTRW SLOWRW STEADY SLOWFW FASTFW 1 n Eo n A f e 0 1 1 0 8 0 6 0 4 0 2 0 0 2 04 06 08 1 RXLXSPEEDREAD VFASTLX MEDIUMLX VSLOWLX VSLOWRX MEDIUMRX VFASTRX FASTLX SLOWLX STEADY SLOWRX FASTRX Figura 6 2 Insiemi fuzzy utilizzati per la fuzzyficazione dei dati messaggio MSG_FROM_BRIAN precedentemente illustrato La defuzzyficazione di modecmd avviene con l insieme di insiemi fuzzy BOOLEANFLAGCMD fwr wemd con FWRWSPEEDCMD e ralzcmd con RXLXSPEEDCMD Gli insiemi fuzzy utilizzati sono visibili in Figura 6 3 I predicati definiti sui dati di ingresso sono Modereadauto che assume valore vero quando readmode vale TRUE Modereadmanual che la negazione del predicato precedente i predicati FwRwSpeedSteady FwSpeedVerySlow FwSpeedVeryFast RuSpeedVerySlow RwSpeedVeryFast sono associa ti ai valori readfwrw e altrettanti predicati analoghi sono associati a readrzalz Per la funzionalit ipotizzata fino a questo punto ovvero di copiare le posizioni della leva del joystick e permettere quindi il movimento della ca
38. efficiente e precisa in quanto essi permettono di controllare la carrozzina in modo fluido Grazie alla modularit del sistema software e del controllore molto semplice inserire nella struttura di controllo della carrozzina altri disposi tivi di comando Un possibile sviluppo di questo lavoro riguarda quindi 192 Capitolo 8 Conclusioni e sviluppi futuri Vintegrazione di altri dispositivi di comando come ad esempio un sistema basato sull analisi del movimento oculare o della testa o altri dispositivi che possono risultare pi comodi e semplici da utilizzare a determinate categorie di utenti La funzionalit di guida assistita impedisce l esecuzione di comandi im partiti dall utente che potrebbero portare a collidere con ostacoli Questa funzionalit stata testata in ambienti controllati e ha evidenziato risultati interessanti mostrati nella Sezione 7 4 Le funzionalit di assistenza alla guida pi rappresentative sono il mantenimento della distanza di sicurezza dai muri e l evitamento di ostacoli frontali decentrati rispetto alla carrozzina Con il mantenimento della distanza costante dai muri possibile facilitare il compito dell utente che desidera attraversare corridoi o stanze L evitamen to ostacoli aiuta invece l utente nelle manovre evitando la collisione con gli ostacoli e impostando la manovra che permette di schivare l ostacolo stesso Un punto di forza del sistema sviluppato dato dal fat
39. emettono segnali a banda ultralar ga UltraWideBand UWB ovvero impulsi di energia in radiofrequenza di durata estremamente ridotta nell ordine dei nanosecondi o picosecondi Il principale vantaggio degli UWB rispetto alle normali onde radio dato dal la possibilit di distinguere facilmente quali segnali sono corretti rispetto a quelli che giungono da riflessioni multiple I sensori posizionati nell ambiente ricevono i segnali emessi dai tag e ne stimano la posizione utilizzando due algoritmi e Time Differential Of Arrival TDOA che calcola la posizione del tag analizzando gli istanti di tempo in cui il segnale emesso dal tag viene ricevuto dai vari sensori e Angle Of Arrival AOA che stima l angolo da cui arriva il segnale emesso dal tag L uso combinato dei due metodi permette di rilevare la posizione anche quando il tag visibile da soli due sensori diminuendo quindi il numero di sensori necessari per coprire interamente l ambiente interessato La posi zione rilevata con questo sistema presenta una deviazione standard di circa 15cm che pu crescere in condizioni sfavorevoli L installazione del sistema richiede un notevole sforzo per il posiziona mento dei sensori La precisione con cui si posizionano e si calibrano i sensori influisce fortemente sulla precisione del sistema L area che si pu coprire con l uso di 4 sensori di circa 400m Per ulteriori informazioni si rimanda al sito del costruttore e
40. etc Supponendo che la zona numero 3 dello scanner laser di sinistra sia rivolta a Nord relativamente alla carrozzina si possono definire i seguenti predicati LeftVicinoNord D mindist_left_zone_3 VICINO LeftMedioNord D mindist_left_zone_3 MEDIO LeftLontanoNord D mindist left zone 3 LONTANO LeftMoltoLontanoNord D mindist_left_zone_3 MOLTOLONTANO Per intervenire sul controllo del moto della carrozzina in modo da evita re gli ostacoli necessario creare il comportamento ObstacleAvoidMinDist Per garantire che questo comportamento sia indipendente dal dispositivo di comando in uso e possa agire sulle azioni proposte dall utente che comanda la carrozzina necessario inserirlo in un livello superiore della gerarchia di controllo I comportamenti finora introdotti per Mr Brian erano infat ti tutti di livello 1 e proponevano azioni tramite le variabili fwrwcmd e rtlecmd Collocando al secondo livello della gerarchia di controllo il com portamento per l evitamento ostacoli possibile riutilizzare le variabili di uscita come ingressi del sistema e agire considerando i predicati introdotti 126 Capitolo 6 Software di controllo MSG_FROM_MOTION_ BRIEF MotorExpert BrianExpert MSG_FROM_BRIAN MSG_FROM_HOKUYO_MINDIST MSG_FROM_JOYPAD_BRIEF HokuyoExpert JoypadExpert MSG_FROM_HOKUYO_ERR Figura 6 9 Schema a blocchi del sistema con i membri BrianExpert MotorExpert JoypadExpert e HokuyoExpert AudioExpe
41. fedelmente quello proposto dal pianificatore Non stato possibile approfondire ulteriormente l analisi del comporta mento della carrozzina nel caso di percorsi pi complessi Infatti la zona coperta dal sistema di localizzazione ovvero quella in cui sono visibili i mar ker sul soffitto non molto ampia Per questo motivo stato difficile rea lizzare percorsi complessi senza che la carrozzina si ritrovasse in condizioni di dover interrompere l esecuzione automatica di percorsi per indisponibilit del dato di posizione Quando l esecuzione dei percorsi veniva interrotta per mancanza di riferimenti assoluti di posizione spesso era sufficiente guidare manualmente la carrozzina fino a rendere nuovamente nota la posizione della carrozzina permettendo cos di ripianificare autonomamente il percorso da compiere e riprendere l esecuzione La presenza di ostacoli imprevisti durante l esecuzione del percorso pia nificato comporta quasi sempre l arresto della carrozzina mentre si verifica poche volte il caso in cui l ostacolo viene aggirato e il percorso proseguito 7 5 Guida autonoma 181 T T T T Percorso carrozzina GOOO Percorso pianificato Ostacoli dinamici ta 4000 4 2000 di DA E F gt Sx of ice 4 2000 H J I 4000 h 4000 2000 8000 Figura 7 23 Esecuzione automatica di un percorso a L 1
42. gt MINDISTOST_LEFT2_RIGHT5 300 500 ai 180072008 VICINO A MEDIO gt gt 300 500 300 500 1800 2000 MINDISTOST_LEFT3_RIGHT4 ete et 1800 2000 4500 5000 4500 5000 VICINO A MEDIO x MINDISTOST_LEFT4 RIGHT3 2005 1500 2007509 800 1090 A MINDISTOST_LEFT5_RIGHT2 2902300 FO 9904 2000 VICINO A MEDIO gt gt MINDISTOST_LEFT6_RIGHT1 200 300 3002900 SO 1000 A gt 1 x 200 300 200 300 800 1000 MINDISTOST LEFT7 RIGHTO Tabella 7 3 Insiemi fuzzy utilizzati per fuzzyficare le distanze rilevate con i sensori laser 170 Capitolo 7 Risultati sperimentali le accelerazioni registrate sugli assi x e y nei primi 10 secondi della regi strazione evidente che la media dei dati non nulla ovvero presente una componente che durante l integrazione viene sempre sommata e porta a divergere il valore dell integrale stesso Questo pu essere dovuto al po sizionamento non perfetto del sensore Ad esempio se l asse x del sensore fosse leggermente inclinato verso il basso e non perfettamente parallelo al pavimento nella misura dell accelerazione rientrerebbe una componente del la gravit terrestre che quindi porterebbe la misura ad avere una media non nulla Questo accade in quanto il sensore non misura direttamente le accele razioni ma le forze che agiscono su di esso Estrando i dati di accelerazione dalle forze nota la massa mobile si ottiene che la forza di gravit produce un o
43. i contorni dei marker introducendo per un sistema di autocalibrazione della soglia che lo rende pi flessibile alla variabilit delle condizioni di luce possibile utilizzare sia marker con contenuto informativo generico i e un immagine da confrontare come nel caso di ARToolKit sia con un identificativo digitale i e un codice a barre bidimensionale come nel caso di ARTag I marker predefiniti con contenuto digitale sono di due tipi simple ID con 512 marker disponibili e BCH ID con 4096 marker alcuni esempi sono riportati in Figura 5 3 Le principali migliorie introdotte da ARToolKitPlus rispetto ad ARTool Kit sono e Meccanismo di soglia automatica per la creazione dell immagine in bianco e nero da analizzare e Compensazione del fenomeno di vignettatura zone scure negli angoli dell immagine che migliora il riconoscimento dei marker anche quando questi sono vicini al bordo dell immagine e Semplificazione del processo di calibrazione della telecamera che si pu effettuare con qualsiasi sistema standard e g Camera Calibration Toolbox for Matlab e Introduzione di un algoritmo di stabilizzazione della stima della matri 82 Capitolo 5 Localizzazione con landmark artificiali ce di rototraslazione Robust Planar Pose Tracking RPP che porta dal sistema di riferimento telecamera al sistema di riferimento tag x ARToolKitPlus portabile anche su dispositivi mobili come palmari e telefoni
44. il valore di verit dei predi cati complessi con il metodo ricorsivo illustrato nella Sezione 3 5 4 La possibilit di definire predicati fuzzy composti semplifica la costruzione di strutture complesse Ad esempio possibile definire un predicato NessunOstacolo OstacoloNord A OstacoloOvest A OstacoloEst A OstacoloSud riassumendo cos in un unico predicato un concetto pi articolato 3 Scelta dei comportamenti da attivare BRIAN introduce un meccanismo di attivazione dei comportamenti che permette di descrivere tramite regole fuzzy quali sono le condizioni che determinano se un certo comportamento attuabile o meno Ad esempio un comportamento che permette di muovere il robot al fine di raggiungere un punto nello spazio attuabile se la posizione attuale nota e se il punto da raggiungere stato specificato Le regole che governano l attivazione dei comportamenti sono dette di CANDO in quanto stabiliscono se un comportamento pu essere attuato 4 Valutazione delle regole dei singoli comportamenti Una volta valutati quali sono i comportamenti attivi BRIAN valuta le 3 6 BRIAN e Mr BRIAN 45 singole regole che definiscono il particolare comportamento Nel caso in cui l antecedente risulti vero ovvero il valore di verit associato superiore ad una certa soglia l azione proposta dalla regola viene aggiunta all insieme delle azioni proposte dai comportamenti attivi e pesata con il valore di v
45. in modo da garantire una corretta reazione del sistema in entrambi i casi di guida citati 7 6 Tempi di esecuzione Una volta realizzato il software di controllo si evidenziata la necessit di capire se la potenza di calcolo messa a disposizione dal computer di bordo alloggiato sulla carrozzina fosse sufficiente Per valutare questo dato si sono analizzati i periodi di esecuzione dei membri pi significativi per il control lo della carrozzina ovvero il tempo che intercorre tra una attivazione del membro e la successiva I membri considerati sono 1 MotorExpert 2 BrianExpert 3 JoypadExpert Gli altri membri presentano periodi di attivazione pi lunghi e sono per questo stati considerati come meno critici I tempi di attivazione rilevati in un periodo di 10 secondi corrispondenti a 500 attivazioni del membro BrianExpert sono riportati in Figura 7 27 Il tempo teorico di attivazione fissato a 20ms e la media delle attivazioni ottenute di circa 22ms con una deviazione standard associata di 2 6ms Dal grafico facile notare che si ottengono punte di ritardo nell esecuzione anche superiori ai 10ms Questo evidenzia che la potenza di calcolo dispo nibile non del tutto adeguata e pu comportare ritardi anche consistenti nella produzione dell azione di controllo Le stesse conclusioni si possono 184 Capitolo 7 Risultati sperimentali 0 036 T T T T T T T T T 0 034 4 0 032 H 0 028 Tempo d
46. informazioni rilevate riguardo all ostacolo stesso Come ultima estensione si progettato e sviluppato un sistema di gui da autonoma che permette di pianificare ed eseguire percorsi in ambienti conosciuti dal sistema ovvero di cui sia disponibile una mappa metrica bi dimensionale e in cui possibile conoscere in tempo reale la posizione della carrozzina I percorsi pianificati sono costituiti da una lista di via point che vengono inseguiti in successione Per supportare la guida autonoma dopo aver analizzato alcuni sistemi di localizzazione indoor commerciali 48 e 19 e averli valutati come po co vantaggiosi a causa del costo eccessivo si progettato e sviluppato un sistema di localizzazione per ambienti indoor basato su landmark artificiali passivi rilevati con l uso di tecniche di visione artificiale In particolare si 4 Capitolo 1 Introduzione sono sfruttati i sistemi di fiducial marker noti sia in applicazioni robotiche 15 sia in applicazioni di realt aumentata 2 17 per costruire un siste ma di localizzazione che permette di conoscere la posizione e l orientamento della carrozzina in tre gradi di libert rispetto a un sistema di riferimento assoluto utilizzando marker posizionati sul soffitto dell ambiente Il sistema di localizzazione realizzato si rivelato robusto e affidabile oltre che molto economico e facilmente scalabile su vaste zone Durante il movi
47. limitati 46 Negli anziani invece la difficolt crescente di compiere movi menti induce un processo involutivo che peggiora le condizioni psico fisiche della persona Dal punto di vista fisico le maggiori difficolt di movimento limitano il numero e la durata delle attivit che una persona riesce a svolgere anche fino a indurla a rinunciare a espletare i bisogni fisiologici e non soddisfare le necessit nutrizionali con conseguente peggioramento delle sua salute Dal punto di vista psicologico l impossibilit di muoversi agevolmente comporta difficolt di socializzazione accrescendo lo stato di solitudine e favorendo l insorgere di stati d ansia e depressione In 20 si evidenzia che il 31 delle 8 Capitolo 2 Ausili alla mobilita e tecnologia persone con difficolt motorie soffrono di crisi d ansia e stati depressivi contro il 4 delle persone senza difficolt motorie L uso di carrozzine manuali o motorizzate aumenta le possibilit di mo vimento e favorisce lo sviluppo di circoli virtuosi che portano le persone con impedimenti fisici a un sostanziale stato di benessere psico fisico Le carrozzine motorizzate si guidano solitamente con un joystick e sono rivolte soprattutto alle persone che non sono in grado di imprimere alle ruote la forza necessaria per muovere una carrozzina manuale o per le quali questo compito risulterebbe troppo gravoso Un discreto numero di persone che potrebbero usufruire dei be
48. lizzazione che gli permetta di conoscere la sua posizione nella mappa Per fare ci possibile utilizzare dei landmark naturali o artificiali riconoscibili con sistemi di visione artificiale I landmark naturali sono rappresentati da forme o caratteristiche salienti dell ambiente distinguibili come ad esem pio gli spigoli su un soffitto o oggetti appesi alle pareti Questi landmark si considerano naturali in quanto non sono posizionati appositamente ma sono gi parte dell ambiente L uso di landmark naturali comporta pi problemi di possibili ambiguit rispetto a quelli artificiali che presentano solitamen te caratteristiche che li rendono difficilmente confondibili Una carrozzina autonoma che riconosce landmark naturali CCPWNS 12 mentre l uso di landmark artificiali implementato ad esempio in Madarasz 29 Un uteriore possibilit per effettuare localizzazione rappresentato dal l uso di fari che emettono segnali riconoscibili e distinguibili Questo approccio utilizzato ad esempio in MAid 36 e VAHM 37 7 Un sistema di posizionamento assoluto pu essere utilizzato per garantire la stabilit dei sistemi di posizionamento relativo infatti noto che per effettuare la localizzazione basandosi su informazioni inerziali o odometriche necessario disporre di un sistema di azzeramento dell errore che diverge al crescere dello spazio percorso 2 3 Progetti esiste
49. modo completamente trasparente al sistema di evitamento ostacoli facilitando cos l espansione del sistema Il test del comportamento della carrozzina volto alla valutazione e analisi delle funzionalit realizzate Ad esempio significativo verificare come si comporta il sistema di assistenza alla guida e quali sono i punti di forza e i possibili miglioramenti da apportare Grazie a queste valutazioni 52 Capitolo 4 Progetto di una carrozzina robotica Figura 4 1 La carrozzina Otto Bock Rabbit utilizzata per questo lavoro possibile indicare in modo preciso quali sono le linee di evoluzione da seguire e quali i risultati ottenuti 4 1 2 Otto Bock Rabbit La carrozzina commerciale a disposizione per lo sviluppo del sistema una Rabbit prodotta dalla ditta tedesca Otto Bock Come visibile in Figura 4 1 una carrozzina adatta sia ad ambienti indoor che outdoor in quanto pre senta due ruote posteriori di dimensioni generose e con pneumatici tassellati La trazione realizzata con due motori indipendenti che agiscono su ciascuna delle ruote posteriori mentre le ruote anteriori sono libere e non comandabi li I motori assorbono una potenza di circa 200W ciascuno quanto utilizzati a piena potenza L alimentazione fornita da due batterie da 12V e 70Ah collegate in serie e poste sotto il sedile di guida Il sistema di controllo dei motori di comando con il joystick e l insieme di tutte le componenti e
50. modo indipendente l uno dall altro La conoscenza della totalit dei com portamenti presenti nel sistema nota solo al modulo che gestisce le regole di CANDO e WANT La progettazione del sistema di controllo avviene in modo modulare e riusabile in quanto ogni singolo comportamento risul ta indipendente dagli altri presenti nel sistema Un difetto individuabile in questo approccio dato dalla possibilit di fondere i risultati di due compor tamenti che risultano contrastanti se un comportamento sceglie di andare a destra per evitare un ostacolo e un comportamento di inseguimento tar get propone di avanzare si otterr un movimento in diagonale che potrebbe compromettere la riuscita dell evitamento ostacoli Questo problema viene superato dallo sviluppo di BRIAN in Mr BRIAN 3 6 2 Mr BRIAN Mr BRIAN Multilevel Ruling BRIAN il successore di BRIAN e mantiene tutte le caratteristiche di BRIAN introducendo per la possibilit di strut turare i comportamenti in una gerarchia Mr BRIAN supera il problema della ambiguit della fusione dei risultati di BRIAN in quanto permette di stabilire una scala di priorit dei comportamenti Un comportamento di livello riceve in ingresso oltre ai dati di input i valori di uscita del livello i 1 e pu agire su di essi sia effettuando le sue proposte sia cancellando le proposte o alcune proposte del livello precedente Considerando l esem pio precedente che creava un comportamento n
51. non richiede di modificare in alcun modo l ambiente Un esempio di robot che effettua localizzazione grazie al rilevamento automatico di caratteristiche salienti dell ambiente il robot Minerva 47 La rilevazione di feature 3D complicata dalla necessit di costruire manualmente o con tecniche di SLAM il modello di confron to L uso di fiducial marker offre pi garanzie di precisione ma impone la modifica dell ambiente Per minimizzare l impatto visivo di questi sistemi sono stati studiati speciali sistemi per produrre marker nascosti o di aspetto decorativo per l ambiente come ad esempio in 39 5 2 Fiducial Marker I sistemi basati su fiducial marker sono utilizzati in svariati ambiti dalla robotica 15 alle applicazioni di realt aumentata 2 17 Un marker solitamente costituito da una superficie planare di forma nota con un conte nuto informativo In questo lavoro sono stati presi in considerazione i sistemi ARToolKit 22 ARTag e ARToolKitPlus 51 I marker di questi sistemi hanno forma quadrata con un vistoso bordo nero e possono essere stampati con una comune stampante su un foglio di carta sufficientemente rigido a un costo irrisorio Il contenuto informativo costituito da un immagine che viene confrontata con un modello precedentemente memorizzato e che varia da sistema a sistema Il processo di identificazione di marker in un immagine segue in genere i
52. noti i parametri costanti segue quindi i seguenti passaggi 1 Acquisizione della matrice Th dalla libreria di gestione dei fiducial marker 2 Creazione della matrice Ti tramite sostituzione dei parametri costan ti noti per quel particolare marker 3 Calcolo di To dall inversione di To 5 6 Semplificazione da 6 a 3 dof 103 5 6 1 Stima delle costanti Non stato ancora affrontato il problema di come ricavare i valori costanti di 6 e 7 e ta Si potrebbe pensare di misurare manualmente i parametri costanti Questo metodo oltre a essere scomodo rischia di essere impreciso a meno di effettuare pesanti assunzioni sul posizionamento della telecame ra Oltretutto per poter misurare precisamente la distanza t del mar ker nel sistema di riferimento della telecamera sarebbe necessario conoscere precisamente la posizione del piano immagine della telecamera Supponendo che il rumore su p i yi e tz sia a media nulla possibile utilizzare i valori medi di pi rilevazioni della posizione del marker come costanti 3 e 7 e t Rilevando un certo numero di immagini in cui il marker i visibile si calcolano le matrici TK 1 n da cui possibile estrarre i valori 6i 1 n vil n e t 1 n Le medie di questi valori indicate con e 4 e n rappresentano la stima delle costanti 3 e 7 e tz cercate Non necessario che la telecamera e il marker siano fermi per creare questi dati ma sufficiente che la telecam
53. ottenere le relazioni tra le posizioni delle singole telecamere e un unico sistema di riferimento assoluto Per coprire zone vaste pi vantaggioso utilizzare una telecamera mobile e posizionare i marker nell ambiente Il costo dei marker molto basso e in seguito saranno illustrate alcune procedure automatiche per la calibrazione del sistema ovvero per la creazione delle relazioni tra posizione dei marker e sistema di riferimento assoluto 5 3 Posizione assoluta con telecamera mobile Supponendo di disporre di marker fissi nell ambiente e di una telecamera posta su un oggetto mobile i sistemi di fiducial marker permettono di co noscere la posizione e l orientamento del marker nel sistema di riferimento della telecamera Per risalire alla posizione e all orientamento dell oggetto 3http studierstube icg tu graz ac at handheld_ar stbtracker php 5 3 Posizione assoluta con telecamera mobile 83 mobile su cui montata la telecamera in un sistema di riferimento assoluto necessario e Conoscere la posizione e l orientamento di ogni marker rispetto al sistema di riferimento assoluto e Conoscere la posizione e l orientamento della telecamera rispetto a un punto fissato dell oggetto mobile e g il baricentro il centro cinema tico del robot etc Queste informazioni sono sufficienti per calcolare la posizione e l orien tamento dell oggetto mobile rispetto al sistema di riferimento assoluto in un qual
54. permette di descrivere i comportamenti in un linguaggio di alto livello e con un elevato grado di astrazione rispetto ai dati sensoriali L architettura si rif in larga parte a quella reattiva in quanto tutti i comportamenti a parit di livello vengono eseguiti in parallelo Il problema della fusione dei risul tati superato dall inserimento della gerarchia dei comportamenti senza imporre la rigidit della struttura e la lentezza dell architettura gerarchica e superando il problema della dipendenza dei comportamenti e moduli presen te nelle architetture di Brooks e Maes La struttura a livelli della gerarchia di controllo permette di semplificare la progettazione dei comportamenti essi sono progettati in modo indipendente tenendo conto solo delle azioni proposte dal livello inferiore come ingresso aggiuntivo ai dati sensoriali Le condizioni di CANDO e WANT garantiscono la flessibilit nell attuazione dei comportamenti in base alle condizioni esterne alle variabili di stato e agli obiettivi da raggiungere 48 Capitolo 3 Panoramica sulla robotica mobile Capitolo 4 Progetto di una carrozzina robotica In questo capitolo si illustra tutta la fase di progetto della carrozzina dalle funzionalita avanzate Partendo dall analisi dei requisiti e degli obiettivi da raggiungere sono presentate tutte le scelte fatte i sensori e la componenti stica hardware utilizzata lo studio del montaggio e posizionamento di ogni compone
55. riferimento descritto nella Sezione 5 4 3 Un buon posizionamento dei marker deve mantenere bassa la probabilit che i marker siano nascosti da altri oggetti presenti nell ambiente o da persone che si muovono di modo che i dati di posizionamento siano disponibili per il maggior tempo possibile Le posizioni della telecamera e dei marker valutate sono state http www gnu org copyleft gpl html 5 5 Realizzazione del sistema di localizzazione 89 e Telecamera frontale e marker posizionati sulle pareti verticali della stanza e Telecamera rivolta verso il basso e marker sul pavimento e Telecamera rivolta verso l alto e marker sul soffitto La soluzione con telecamera frontale e marker sulle pareti fortemente sog getta a occlusioni in quanto persone od oggetti nella stanza possono coprire in tutto o in parte i marker Come ulteriore problema se l ambiente fosse di grandi dimensioni sarebbe necessario utilizzare marker molto grandi per far si che la telecamera possa riconoscerli anche da lontano Sarebbero inoltre necessari anche marker pi piccoli in quanto avvicinandosi alle pareti della stanza i marker di grosse dimensioni uscirebbero facilmente dall inquadra tura della telecamera Il caso di marker sul pavimento risolve il problema di coprire zone vaste in quanto possibile posizionare i marker uniformemente su tutta la superficie di movimento Anche in questa configurazione per molto facile che i marker possa
56. risultato molto stabile In una versione definitiva sarebbe opportuno inserire controlli pi precisi per garantire maggiore sicurezza dell utente a bordo 6 2 10 Commento sull architettura La struttura generale dell architettura con tutti i membri fino a ora pre sentati e i messaggi prodotti mostrata in Figura 6 23 Alcuni messaggi risultano inutilizzati questo a dimostrazione del fatto che l architettura stata progettata e realizzata in funzione di sviluppi futuri L estensione fa cilitata dalla modularit dell architettura software che permette di cambiare o aggiungere facilmente membri senza modificare tutto il software di con trollo Inoltre anche il controllore fuzzy facilmente estendibile in quando anch esso modulare e i comportamenti sono progettati indipendentemente uno dall altro I membri che potrebbero essere pi sviluppati sono GuiExpert PoseEx pert oltre a ErrorExpert le cui possibili estensioni sono gi state presentate nella sezione precedente GuiExpert il membro che si occupa dell inter faccia utente Grazie all architettura proposta possibile cambiare l inter faccia utente del sistema in base alle esigenze dell utente Sarebbe possibile anche spostare l interfaccia utente su un altra Agor del sistema DCDT implementata in un altro programma in modo da rendere completamente indipendente il sistema di controllo dall interfaccia grafica La realizzazio ne di
57. sensori inerziali sono inve ce autocontenuti ovvero possono essere utilizzati per misurare accelerazioni lineari e velocit rotazionali semplicemente applicando il sensore alla car rozzina senza creare vincoli fisici con gli organi in movimento Si scelto di utilizzare il sensore XSens MTi visibile in Figura 4 3 e presentato nella Se zione 3 2 che fornisce i dati della velocit rotazionale intorno ai tre assi del sistema di riferimento solidale con il sensore l accelerazione lungo gli stessi tre assi e l orientamento del sensore rispetto a un sistema di riferimento as soluto terrestre Il sensore si collega al computer tramite una porta USB da cui preleva anche l alimentazione necessaria I dati forniti sono sovrabbon 4 2 Sensori e componentistica hardware 55 Figura 4 3 Il sensore XSens MTi danti rispetto a quelli necessari per il controllo del moto di una carrozzina ma la disponibilita di questo sensore ha indotto a non acquistarne uno che offrisse solo le prestazioni strettamente necessarie Considerando di montare il sensore con asse z rivolto verso il basso e x nella direzione frontale della carrozzina si possono considerare come dati utili l accelerazione lungo gli assi x e y e la velocit di rotazione intorno all asse z Tutti gli altri dati sono superflui in quanto l accelerazione lungo l asse z sar pari alla gravit terrestre si noti che il sensore rileva la forza che agisce sul
58. si cercato un microprocessore che potesse fare da ba se di sviluppo per il circuito e che contenesse il maggior numero di moduli hardware utili all applicazione da realizzare I convertitori analogico digitale ADC e l interfaccia per la comunicazione seriale RS232 sono presenti in molti microprocessori della famiglia PIC prodotta da Microchip mentre nessun microprocessore della famiglia PIC mette a disposizione un numero adeguato di convertitori digitale analogico DAC Si scelto di utilizzare il microprocessore PIC18F452 e i convertitori digitale analogico MCP4822 anch essi prodotti dalla Microchip e perfettamente compatibili con i micro processori PIC Utilizzando l aritmetica nativa di questo processore a 8 10http www microchip com 4 3 Interfacciare la carrozzina e il computer 65 bit possibile descrivere la posizione della leva con valori digitali compre si tra 0 a 255 con una risoluzione nella conversione analogico digitale di circa 20mV La risoluzione della conversione digitale analogica equivalen te Per l interfacciamento con il computer necessario introdurre il chip MAX232 prodotto dalla Maxim che converte i valori di tensione dell in terfaccia seriale disponibile sul PIC 0 5V a quella adatta al computer a 12V Lo schema elettrico del circuito progettato riportato in Figura 4 9 per ulteriori dettagli si rimanda a 10 e 9 In una versione definitiv
59. si introducono i membri che gestiscono il sistema di localizzazione Per quanto riguarda le informa zioni sulla velocit PoseExpert opera da semplice ripetitore e integratore delle informazioni inviate da MtiExpert Ad ogni ciclo infatti controlla se disponibile un messaggio di tipo MSG_FROM_IMU e ne preleva i dati trasmessi a cui interessato Come specificato nella Sezione 4 2 2 i dati utili sono la velocit di rotazione intorno all asse z e il modulo della velocit lungo gli assi x e y La velocit di rotazione intorno all asse z disponibile in imu_gyr_z ed espressa in radianti al secondo PoseExpert si occupa di ef fettuare banalmente la conversione in gradi al secondo di questo valore Per quanto riguarda la velocit sugli assi x y PoseExpert si occupa di integrare i valori di imu_acc_r e di imu_acc_y nel tempo implementando il metodo d integrazione numerico dei trapezi dette a t e ay t le accelerazioni at tuali az t 1 e ay t 1 le accelerazioni rilevate al ciclo precedente At il periodo tra una rilevazione e l altra dei dati delle accelerazioni possibile calcolare la velocit lungo l asse x e y con le seguenti formule 8 et wa I Q 8 a cuni pa wa ax t 1 a t x At 2 ay t 1 ay t At 2 S Ned ct a Il Ss ct l j wa 6 2 Componenti software 129 da cui si ricava facilmente il modulo della velocita u t 4 v_ t
60. tra i marker Una successiva analisi delle immagini ha permesso di calcolare le posi zioni e gli orientamenti relativi dei marker Il grafo delle relazioni costruito mostrato in Figura 7 5 Si scelto come marker base ovvero come marker a cui il sistema di riferimento assoluto riferito il marker identificato dal codice 4 La matrice di rototraslazione che descrive la posizione e l orien tamento del marker 4 rispetto al sistema assoluto stata scelta come una semplice rotazione di 180 intorno all asse x che permette di ottenere l asse z del sistema di riferimento assoluto opposto a quello del sistema di riferi mento solidale con il marker numero 4 ovvero rivolto dal pavimento verso il soffitto Dal grafo stato estratto l albero di copertura di peso massimo che permette di definire un cammino unico tra il sistema di riferimento assoluto e ogni nodo il risultato riportato in Figura 7 6 Partendo dal sistema di riferimento assoluto possibile risalire alla posizione e orientamento di ogni marker La posizione dei maker rilevata considerando le sole coordinate x e y mostrata in Figura 7 7 Si pu notare che l albero ottenuto molto sbilanciato in quanto costituito da un percorso obbligato senza alcuna diramazione Alberi di questo tipo potrebbero influenzare in modo negativo la precisione del sistema di localizzazione in quanto l effetto dell errore si accumula con l allungarsi dei cam
61. utente di impartire alcuni comandi al software di controllo Produzione di log dettagliati e facilmente analizzabili utili sia in fase di sviluppo del sistema per facilitare la ricerca di malfunzionamenti e problemi sia in fase di analisi del comportamento del sistema stesso in quanto permette di controllare le operazioni svolte dal sistema di controllo Come gi accennato il software di controllo basato sul controllore gerarchico a comportamenti fuzzy Mr Brian presentato nella Sezione 3 6 La presenza di questo componente permette di realizzare il controllo del la carrozzina concentrando tutte le informazioni sensoriali opportunamente modellizzate e codificate Prima di descrivere l architettura del software progettata e realizzata opportuno introdurre alcune scelte progettuali effettuate 6 1 1 Comunicazione tra i membri DCDT utilizza una trama specifica per l invio e la ricezione dei messaggi Ogni messaggio deve essere infatti identificabile per permettere il funziona mento del meccanismo di iscrizione Il formato del payload del messaggio invece libero ovvero possibile spedire qualunque contenuto informati vo Nell ambito del progetto MRT sono state realizzate alcune estensioni a DCDT che si occupano di creare automaticamente il contenuto del mes saggio codificato in XML In particolare ogni messaggio contenuto in un campo MESSAGE caratterizzato dai seguenti attributi id attributo numerico che spe
62. velocit rotazionale La struttura del controllore fuzzy risulta ulteriormente modificata ed mostrata in Figu ra 6 11 mentre l architettura del sistema software a cui sono stati aggiunti i membri MtiExpert e PoseExpert visibile in Figura 6 12 Importanza di PoseExpert La struttura di PoseExpert molto semplice e la presenza di un membro di questo genere pu sembrare superflua in quanto per quanto visto finora questo membro svolge solo semplici calcoli sui dati sensoriali e propone i risultati in uscita L importanza di questo mebro per evidente quando si considerano possibili evoluzioni del sistema Considerando ad esempio di dotare la carrozzina di un sistema di odometria la presenza di PoseExpert rende agevole l introduzione di un nuovo membro Supponendo di chiamare il nuovo membro OdometryExpert e di voler mantenere attivo anche il mem bro MtiExpert possibile modificare il solo membro PoseExpert in modo che esso utilizzi le informazioni sia di OdometryExpert che di MTiExpert Il controllore fuzzy non dovr essere esteso per gestire i nuovi dati in quando esso ricever solo i messaggi prodotti da PoseExpert PoseExpert potrebbe 6 2 Componenti software 131 readmode Livello 2 readfwrw joypad ObstacleAvoidMinDist joypadrxix mindist_left_zone_1 mindist_left_zone_n mindist_right_zone_1 es fwrwemd mindist_right zone_n farewernd rxlxemd rxlxemd speed _module speed_angle
63. vy t 6 1 Il messaggio MSG_FROM_POSE_ACTUAL_SPEED prodotto da PoseExpert contiene tre coppie nome valore e speed_module contiene il valore del modulo della velocit della carroz zina calcolato con l Equazione 6 1 e speed_angle contiene la velocit rotazionale intorno all asse z rilevata con il sensore XSens Mti e trasformata in gradi al secondo e know_speed assume valore sempre pari a 1 indica che la velocit nota Con la creazione di MTiExpert e PoseExpert necessario estendere nuo vamente il controllore fuzzy realizzato Infatti i messaggi di tipo MSG_ FROM_POSE_ACTUAL_SPEED possono essere utilizzati per creare dei sistemi di evitamento ostacoli pi complessi e allo stesso tempo pi efficienti la co noscenza della velocit di movimento della carrozzina rende infatti possi bile prendere decisioni pi precise sulle manovre da compiere per evitare gli ostacoli Ad esempio qualora si riscontrasse la presenza di un ostacolo in posizione frontale a una distanza di un metro dalla carrozzina cono scendo la velocit della carrozzina stessa possibile creare diverse regole di comportamento se la velocit elevata necessario frenare la carroz zina ovvero comandare un indietro tutta se invece la velocit bassa sufficiente inibire le azioni che porterebbero la carrozzina ad accelerare in direzione frontale Questo tipo di ragionamento ben si adatta alla struttura del controllore fuzzy reali
64. 5 2 1 ARToolKit I marker di ARToolKit sono di forma quadrata con un marcato bordo nero Il contenuto informativo costituito da un immagine in scala di grigi Il pro cesso di riconoscimento dei marker in un frame basato su una sogliatura che permette di ricavare un immagine binaria in bianco e nero Dall imma gine binaria vengono estratti i contorni e identificate le linee I quadrilateri ovvero le catene di quattro linee che formano figure chiuse sono soggetti ad analisi per il riconoscimento del contenuto informativo I pattern che possono essere utilizzati come contenuto informativo sono memorizzati al l interno del sistema e confrontati dopo aver effettuato il raddrizzamento dell immagine con l uso della correlazione L aggiunta di pattern personaliz zati possibile registrando un certo numero di immagini del nuovo pattern che costituiranno la base per il confronto Alcuni pattern base forniti da ARToolKit sono visibili in Figura 5 1 80 Capitolo 5 Localizzazione con landmark artificiali Figura 5 2 Alcuni pattern di ARTag ARToolKit presenta due grossi problemi che ne limitano la precisione e il campo d uso e Il meccanismo di estrazione dell immagine binaria basato su singola soglia non si adatta a condizioni di luce variabile e L uso della correlazione come unico meccanismo di identificazione del pattern comporta numerosi errori nel riconoscimento dei pattern sia in termini di falsi positiv
65. 6V e 24V La potenza massima richiesta in con dizioni di massimo carico del processore di 25W La scheda madre e tutti i componenti citati sono montati in una struttura di profilati di alluminio di dimensioni 225x195x135mm Il sistema operativo installato su PCBrick Linux nella distribuzione Gentoo con interfaccia grafica Gnome Nell ambito del progetto RAWSEEDS stato dimostrato che semplice e molto efficace utilizzare pi PCBrick collegati in rete per gestire il calcolo in parallelo In fase di progettazione si suppone di utilizzare un solo PCBrick rimandando alla verifica delle prestazioni del sistema la valutazione sulla necessit o meno di incrementare la potenza di calcolo 58 Capitolo 4 Progetto di una carrozzina robotica 4 2 5 Periferiche Le normali periferiche di input e output di cui dispone un computer sono difficilmente utilizzabili su un veicolo mobile come una carrozzina elettrica Infatti per utilizzare agevolmente un mouse serve un piano di appoggio men tre una tastiera risulta eccessivamente ingombrante per essere posizionata su di una carrozzina senza intralciare i movimenti dell utente Considerando la categoria di utenti che possono trovare beneficio nell uso di una carroz zina dalle funzionalit estese inoltre importante constatare che le normali periferiche potrebbero risultare difficili o addiritura impossibili da utilizza re Bisogna inoltre considerare che la presenza di un computer a bordo di
66. Automation Magazine 8 29 37 2001 A Lankenau T Rofer and B Krieg Briickner Self Localization in Large Scale Environments for the Bremen Autonomous Wheelchair In Habel C Wender K F Freksa C Brauer W editor Spatial Cognition III Routes and Navigation Human Memory and Learning Spatial Re presentation and Spatial Learning volume 2685 of Lecture Notes in Computer Science pages 34 61 Springer 2003 Steven M LaValle Planning Algorithms Cambridge University Press 2006 S P Levine D A Bell L A Jaros R C Simpson Y Koren and J Bo renstein The NavChair Assistive Wheelchair Navigation System EEE Transactions on Rehabilitation Engineering 7 443 451 1999 R Madarasz L Heiny R Cromp and N Mazur The Design of an Autonomous Vehicle for the Disabled IEEE Journal of Robotics and Automation RA 2 117 126 1986 P Maes Situated agents can have goals In Designing autonomous agents 1990 C Mandel K Huebner and T Vierhuff Towards an autonomous wheelchair Cognitive aspects in service robotics In Proceedings of Towards Autonomous Robotic Systems 2005 M Mazo An integral system for assisted mobility IEEE Robotics Automation Magazine 8 46 56 2001 198 BIBLIOGRAFIA 33 Paolo Meriggi Processing and Communication Systems for Device Communities PhD thesis Universita degli studi di Brescia 2005 34 D P Miller and M G Slack Design and testing of a low cost robotic wheelchair pr
67. IST e MSG_FROM_SPIKE_GOAL_UNRECHABLE La struttura del messaggio MSG_FROM_SEQUENCER_PLAN_REQUEST com posta da e planx start e plan_y start che specificano il punto di partenza del piano richiesto e plan_x goal e plan_y_goal che specificano il punto di arrivo del piano richiesto e line_p1_x line_p1_y line_p2_a line_p2_y specificano le coordinate di una linea che deve essere aggiunta alla mappa come ostacolo dinamico possibile ripetere pi volte questa sequenza di quattro coppie nome valore per specificare pi linee che rappresentano gli ostacoli dinamici SpikeExpert si pone in attesa di messaggi del suddetto tipo e appena ne riceve uno aggiunge gli ostacoli dinamici alla mappa e crea un percorso dal punto di partenza al punto di arrivo Se non possibile creare un percorso che collega il punto di partenza e il punto di arrivo viene inviato il messaggio MSG_FROM_SPIKE_GOAL_UNRECHABLE che non contiene alcuna informazione Altrimenti viene generato un messaggio MSG_FROM SPIKE VIA POINT LIST che contiene la lista dei punti di via espressi con le coppie nome valore point_x e point_y Si noti che gli ostacoli dinamici sono validi solo per la singola pianificazione ovvero a una successiva pianificazione di un percorso gli ostacoli dinamici precedentemente utilizzati non saranno pi presenti nella mappa SequencerExpert si occupa di gestire la pianificazione e l esecuzione del percorso infatti il membro che produce il messagg
68. Il primo test effettuato costituito dalla richiesta di pianificazione di un movimento rettilineo non ostruito da ostacoli Il percorso pianificato 7 5 Guida autonoma 179 Tipo di dato Insiemi fuzzy VICINO MEDIO cl 4 Plc gt 1000 1500 1000 1500 2500 4000 VIAPOINTDISTANCE LONTANO 2500 4000 EST NORD_EST NORD Pass T Less A tzos A I I I I I I I I 60 45 60 45 o 45 o 45 VIAPOINTANGLE NORD_OVEST OVEST E a 7 cs E x ji I I I I Tabella 7 5 Insiemi fuzzy utilizzati per i dati relativi alla distanza e all orientamento rispetto ai via point da raggiungere gli ostacoli dinamici rilevati al momento della pianificazione e il percorso se guito dalla carrozzina visualizzato in Figura 7 22 La carrozzina si muove agevolmente nel percorso raggiungendo facilmente la destinazione Osser vando il grafico si potrebbe pensare che qualora il punto di goal fosse stato spostato a una quota x inferiore a 2000mm la presenza del profilo degli ostacoli dinamici rilevato con i sensori laser avrebbe impedito la pianificazio ne del percorso facile per notare che la forma del profilo rilevato in quel tratto l approssimazione di un arco di circonferenza che non rappresenta un vero ostacolo ma il valore massimo di distanza misurato dallo scanner laser e quindi queste informazioni non sono significative ai fini della piani ficazione Per e
69. LK Apopspo fla 4 RCL TIOSVCCP2 RDI PSPI 50 RC2ICGP1 RD2 PSP2 LM324N ACIYSCKISCL RDaPSP3 Hra RC4SDISDA RD4 PSP4 K MoP4B22 28 amp ACS SDO RDS PSPS K 12 aor SH acetxick ADE PSPE oak id RC7IAXIDT RD7 PSP7 gt 22K LL LM324N mn GND 2 2 31 P2_ vDD2 GND2 r Mu voo eni IZ GND Figura 4 9 Circuito di interfaccia tra joystick della carrozzina e computer 4 3 Interfacciare la carrozzina e il computer 67 F 0 1 h Leva1 Leva2 Chk Figura 4 10 Trama dei messaggi scambiati tra il computer e il circuito 2 Comunicare al PC i valori calcolati al punto 1 3 Se la modalit automatica porre in uscita l ultimo comando ricevuto dal PC 4 Se la modalit manuale porre in uscita i valori calcolati al punto 1 5 Leggere i dati eventualmente comunicati dal PC 6 Controllare la scadenza del timeout di validit dei comandi 7 Controllare eventuali pressioni del pulsante 8 Aggiornare la modalit di funzionamento in base agli eventi rilevati ai punti 5 6 e 7 9 Ripetere dal punto 1 Il ciclo ripetuto ogni 20ms quindi con una frequenza di 50Hz Questa frequenza garantisce di rilevare tutti i movimenti imposti sulla leva dall u tente che come stato accertato tramite prove sperimentali non superano una frequenza di 10Hz e allo stesso modo permettono un controllo fluido da parte del computer 4 3 2 Protocollo di comunicazione I dati che devono scambiarsi il
70. Livello 1 speed_module_prev ModeCmdAuto speed_angle_prev FollowJoystickMotion FollowJoypadMotion Figura 6 11 Controllore fuzzy a 2 livelli per la gestione di joystick joypad evitamento ostacoli grazie all uso dei sensori laser e delle informazioni sulla velocit della carrozzina attuale e precedente MSG_FROM_IMU MTiExpert PoseExpert MSG_FROM_POSE_ACTUAL_SPEED MSG_FROM_MOTION_BRIEF MotorExpert BrianExpert MSG _FROM_ BRIAN MSG_FROM_HOKUYO_MINDIST MSG_FROM_JOYPAD BRIEF HokuyoExpert JoypadExpert MSG_FROM_HOKUYO_ERR Figura 6 12 Schema a blocchi del sistema con i membri BrianExpert MotorExpert JoypadExpert HokuyoExpert e PoseExpert 132 Capitolo 6 Software di controllo utilizzare le informazioni dei membri a esso collegati in modo differente se ad esempio OdometryExpert fosse molto preciso sulle basse velocit ma po co sulle velocit elevate mentre MTiExpert sviluppasse un comportamento opposto sarebbe possibile introdurre un criterio di scelta che compila i mes saggi informativi sulla velocit della carrozzina in base alla condizione di esercizio Per facilitare l estensione del membro PoseExpert sono stati previsti un certo numero di messaggi finora inutilizzati Uno di essi MSG_FROM_POSE_ UNKNOW_ACTUAL_SPEED che comunica l impossibilit di conoscere la velocit della carrozzina Questo tipo di messaggio risulta molto utile se i sistemi utilizza
71. POLITECNICO DI MILANO Corso di Laurea in Ingegneria Informatica Dipartimento di Elettronica e Informazione Sviluppo di una carrozzina autonoma d ausilio ai disabili motori AI amp R Lab Laboratorio di Intelligenza Artificiale e Robotica del Politecnico di Milano Relatore Ing Matteo Matteucci Correlatore Ing Davide Migliore Correlatore Ing Giulio Fontana Tesi di Laurea Specialistica di Simone Ceriani matricola 679817 Anno Accademico 2006 2007 Sommario Il presente lavoro si colloca nell ambito della robotica mobile disciplina che si occupa di studiare e progettare veicoli autonomi dotati di funzionalita intelligenti ovvero di caratteristiche che li rendono in grado di operare e muoversi senza bisogno d intervento umano o riducendo i comandi che l uomo deve impartire In particolare si sono applicate le tecniche della ro botica mobile allo sviluppo di una carrozzina d ausilio ai disabili motori estendendo le funzionalit di una carrozzina elettrica commerciale al fine di studiare come avvicinarla alle esigenze degli utenti che trovano difficolt nell utilizzare i normali ausili alla mobilit Lo scopo della presente tesi stato progettare e realizzare un prototipo di carrozzina elettrica che renda disponibili funzionalit aggiuntive rispetto a quelle offerte dai prodotti pre senti sul mercato partendo proprio da una carrozzina commerciale a cui apportare modifiche Le modifiche apportate riguard
72. S291 LMS400 PeCo Oem e Pds Siemens LS4 Hokuyo UGR 04LX ulteriori informazioni si rimanda a 41 e ai siti web di SICK Hokuyo e Siemens I dati ritenuti significativi per il confronto sono e Angolo di apertura della scansione e Risoluzione angolare Minima distanza rilevabile e Range tipico di lavoro e Massima distanza rilevabile Thttp www sick com http www hokuyo aut jp 3http www siemens com 24 Capitolo 3 Panoramica sulla robotica mobile Risoluzione Accuratezza Frequenza di scansione e Peso e Dimensioni Caratteristiche elettriche Nelle Tabelle 3 1 e 8 2 sono riportate le caratteristiche dei modelli ana lizzati SICK la casa pi attiva nel mercato degli scanner laser I suoi prodotti di maggior successo sono LMS 200 e LMS 291 utilizzati in molti progetti di robotica mobile 4 Siemens si rivolge soprattutto ad un mercato industriale e il suo scanner laser LS4 alla base di sistemi di automazione e sicurezza Hokuyo produce uno scanner laser decisamente differente dai concorrenti il pi piccolo e leggero ingombro di 50 x 50 x 70 mm peso 160 grammi offre un buon range angolare di scansione con una risoluzione angolare discreta anche se non ha le stesse prestazioni valutate in termini di distanza massima rilevabile e frequenza di scansione della famiglia dei SICK Nella Tabella 3 3 sono riportate le caratteristiche della luce emess
73. SG_FROM_VISION_POS VisionExpert PoseExpert MTiExpert MSG_FROM_POSE_UNKNOW_ACTUAL_POS MSG_FROM_POSE_ACTUAL_POS MSG_FROM_POSE_UNKNOW_ACTUAL_SPEED r ae Ene o AudioExpert MSG_GO_TO_ MSG_FROM_POSE_ACTUAL_ SPEED MSG_FROM_SEQUENCER PLAN REQUEST GOAL _COMMAND MSG_FROM_ JOYPAD_ o MSG_FROM_SPIKE_VIA_POINT_LIST Sequencer MSG_GOAL_XY r AUDIO SpikeExpert y ert GuiExpert MSG_FROM_SPIKE_GOAL_UNRECHABLE p MSGSTOP PLANEX ON MSG_FROM_SEQUENCER _EXECUTING_ PATH MSG_FROM_SEQUENCER VIAPOINT_INFO MSG_FROM_ JOYPAD_INFO SIC IMSG_FROM_SEQUENCER_ASK_FOR_SEGMENTS el HokuyoExpert MSG_FROM_HOKUYO_POINT_LIST JoypadExpert MSG_FROM_HOKUYO_MIN_ DIST MSG_FROM_HOKUYO_ERR MSG_FROM_ MOTION_INFO MSG_FROM_BRIAN MSG_FROM_ERROR_MANAGER i ErrorExpert BrianExpert __MSG_FRoM_MOTION BRIEF _ MotorExpert MSG_FROM_ JOYPAD_BRIEF Figura 6 23 Architettura completa del software di controllo della carrozzina 91eMJJos IyUIUOdUIOD 79 TSI 152 Capitolo 6 Software di controllo JoypadExpert viene rieseguito ogni 20ms per permettere di comanda re la carrozzina con la stessa frequenza con cui MotorExpert invia i comandi HokuyoExpert viene rieseguito ogni 100ms infatti gli scanner laser Ho kuyo URG 04LX sono in grado di produrre 10 scansioni al secondo VisionExpert viene rieseguito ogni 66ms in quanto la telecamera im postata in modo da acquisire 15 immagini al secondo che vengono analizzate una
74. UAL_POS SequencerExpert reagisce a questo evento inviando a BrianExpert il comando che interrompe l esecuzione del percorso Quando la posizione della carrozzina torna a essere nota essa viene confrontata con l ultima posizione nota Supponendo che la distanza tra le due rilevazioni rientra in una certa tolleranza l esecuzione automatica del percorso riprende da dove era stata interrotta In Figura 6 21 mostrato un caso simile al precedente in cui per al momento della ripresa dell esecuzione del percorso la distanza tra la po sizione precedente e quella attuale risulta troppo elevata In questo caso necessario ripianificare il percorso senza modificare il punto di destinazione 6 2 Componenti software 145 left right MSG_FROM pose ACTUAL Pos MSG _GoaL xy MSG_FROM SEQUENCER FOR S SEGMENT MSG_FROM_p ACTUAL Pos sG_FROM_HOKUYO MSS INT LIST G FROM HOKUYO_ POINT_LIST MSG_FROM pi ACTUAL Pos i ISG_FROM SEGUENCER PLAN_RE QUE EST MSG_FROM Pose Foo ACTUAL Pos viiront LIST MSG_FROM_SPIKE_ MSG FROM SEQUENCER MSG FROM p ose i V A POINT_INFO i OS MSG_FRDM SEQUENCER_ EXECUTING PATH lt 1 gt MSG FROM pose ACTUAL Pog MSG_FROM I SEQUENCER_ SEA PATH lt 0 gt i ert S ncerExpert HokuyoExpert SpK Ee BrianExp eque IRA ole i coi j azione ed esecuzi l dei messaggi tra i membri coinvolti nella pianific o dei Figura 6 19
75. a caratteristica possibile capire quale sensore laser ha subito malfunzionamenti e attendere un suo messaggio che indichi la ripresa del normale funzionamento del sensore la ser Qualora entrambi i sensori laser dovessero causare errori la permanenza dello stato d errore generale si protrarrebbe fino a quando entrambi i sensori laser ripristinano il loro normale funzionamento La gestione dell errore effettuata dal controllore fuzzy che stato esteso con un nuovo comportamento posto al livello pi alto ovvero il terzo di no me GeneralError L attivazione di questo comportamento associata al va lore del campo general_error Il compito di questo comportamento impedi re qualsiasi movimento della carrozzina Il comportamento fuzzy costituito da un unica regola che la seguente Always gt amp DEL rxlxcmd ANY 6 2 Componenti software 149 amp DEL fwrwcmd ANY fwrwcmd STEADY rxlxcmd STEADY Le funzionalit di questo membro possono essere notevolmente sviluppa te Si potrebbero ad esempio implementare controlli sulla periodicit delle letture di MotorExpert monitorando ad esempio il messaggio MSG_FROM_ MOTION_INFO in modo da assicurare che il circuito che comunica con la carrozzina funzioni correttamente Allo stato attuale questo controllo sta to ritenuto superfluo in quanto la carrozzina viene utilizzata in ambienti controllati e il circuito di interfaccia della carrozzina con il PC
76. a e la classe di sicurezza dagli scanner laser Il significato delle classsi di sicurezza il seguente Classe 1 Intrinsecamente sicuri si possono osservare ad occhio nudo senza danno Classe 2 Non intrinsecamente sicuri ma non creano notevoli problemi in quanto i normali tempi di reazione dell occhio umano fanno si che la retina non rimanga esposta per un tempo sufficiente da risultare pericoloso Classe 3A Il laser non deve essere osservato Classe 3B La visione diretta del fascio non sicura Classe 4 Comprende i laser pi potenti e pericolosi come quelli utilizzati nel taglio dei metalli 4Sul sito http www sick com sono mostrate molte vetture partecipanti al Darpa Grand Challenge equipaggiate con scanner laser SICK Modello Range angolare Risoluzione Distanza minima tipica massima Risoluzione Accuratezza LMS 200 180 0 25 0 5 1 0m 10 m 30 m 10 mm 15 mm LMS 211 100 0 25 0 5 1 2m 30 m 72 5 m 10 mm 35 mm LMS 221 180 0 25 0 5 1 2m 30 m 80 m 10 mm 35 mm SICK LMS 291 180 0 25 0 5 1 2m 30 m 80 m 10 mm 35 mm LMS 400 70 0 1 1 lm 3m 1mm 4 mm LD OEM 360 0 125 0 5 m 24 m 100 m 3 9 mm 25 mm LD PDS 360 0 125 0 5 m 24m 100 m 3 9 mm 25 mm LD PeCo 90 2 5 m 5 5 m E 90 5 5 m 15m HOKUYO URG 04LX 240 0 36 0 002 m 4m 5 6 m _ 10mm o 1 SIEMENS LS4 190 0 36
77. a e stabile della carrozzina autonoma si pu supporre che la carrozzina si muova solo quando il computer acceso e il software di controllo in esecuzione A livello di prototipo per consigliabile seguire un approccio pi conservativo che permetta di guidare la carrozzi na sempre anche quando il pc non acceso o il software di controllo non funzioni a dovere Si quindi scelto di dotare il circuito di due modalit di funzionamento manuale e automatica Nella modalit manuale possibile guidare la carrozzina con il normale joystick quindi la presenza del circuito del tutto trasparente e il computer non pu in alcun modo controllare la carrozzina Nella modalit automatica invece il computer a controllare il movimento della carrozzina La modalit in uso comunicata tramite due led di colore diverso e il cambio della modalit operativa si effettua tramite la pressione di un pulsante All accensione del circuito che corrisponde all accensione della carroz zina elettrica la modalit impostata quella manuale Il passaggio alla modalit automatica effettuabile solo azionando il pulsante predisposto mentre il passaggio alla modalit manuale pu avvenire sia con la pressione dello stesso pulsante sia tramite la richiesta del computer o qualora il com puter non invii al circuito comandi per un tempo superiore a un timeout prefissato In questo modo si garantisce un minimo livello di sicurezza se si passa alla mod
78. a presenza di un circuito di interfaccia semplifica anche il collegamento di dispositivi di comando diversi dal joystick della carrozzina tutti i disposi tivi di comando che possono essere collegati alle interfacce standard di un computer o adattati a esse possono prendere parte al controllo del moto della carrozzina Ad esempio sarebbe possibile comandare la carrozzina con dispositivi come trackball joypad tavolette grafiche e anche software di riconoscimento vocale Nei progetti analizzati nella Sezione 2 3 sono stati utilizzati principal 8La progettazione e la realizzazione del circuito di interfaccia tra la carrozzina e il computer stata svolta in collaborazione con Marco Dalli nell ambito del corso Labo ratorio di Intelligenza Artificiale e Robotica Per maggiori dettagli si rimanda a 10 e 9 62 Capitolo 4 Progetto di una carrozzina robotica mente due metodi per permettere di comandare la carrozzina con un com puter Una delle soluzioni pi praticate consiste nel modificare o sostituire il circuito di controllo dei motori della carrozzina e interfacciarsi direttamente ai motori elettrici con uno circuito di controllo realizzato ad hoc Questa modalit estromette il joystick originale della carrozzina dal controllo nel la guida oppure rende il suo utilizzo mutuamente esclusivo con l uso delle funzionalit aggiuntive previste che saranno accessibili solo con l uso di un diverso disposi
79. a specificare quale dispositivo vuole utilizzare Si realizzato un meccanismo di mutua esclusione che da 122 Capitolo 6 Software di controllo MotorExpert JoypadExpert BrianExpert Lettura i Posizione i Joystick MSG_FROM_MOTION_BRIEF MSG_FROM _vovPap sRrIEF Controllo Fuzzy si MSG_FRGM_BRIAN Attuazione Te TTT Comando Figura 6 7 Sequenza di esecuzione con i membri BrianExpert MotorExpert e JoypadExpert e i messaggi scambiati priorit ai comandi della leva del joystick se il joystick in posizione di riposo ovvero con la leva in posizione centrale allora il joypad pu coman dare la carrozzina ovvero il comportamento FollowJoypadMotion attivo e FollowJoystickMotion non lo quando il joystick non in posizione di riposo il comando imposto dal joypad viene ignorato ovvero il comporta mento attivo FollowJoystickMotion Sfruttando le condizioni CANDO introdotte nella Sezione 3 6 1 che governano l attivazione dei comportamenti di Mr Brian possibile gestire la mutua esclusione con le condizioni appena descritte Un esempio di sequenza di esecuzione del sistema con i tre membri finora introdotti mostrata in Figura 6 7 BrianExpert riceve i messaggi di Motor Expert e di JoypadExpert e dopo aver svolto il ciclo di controllo invia il messaggio per l attuazione a MotorExpert 6 2 3 Riproduzione di file audio Una funzionalit che stata aggiunta alla carrozzina ma che non
80. a una Sarebbe possibile impostare la telecamera in modo da acquisire fino a 30 immagini al secondo ma il tempo neces sario ad analizzare il singolo frame per quanto sia variabile risulta da prove pratiche spesso superiore al tempo disponibile pari a circa 33ms Si quindi preferito mantenere un frame rate pi basso per garantire una maggiore costanza delle rilevazioni Qualora infatti l a nalisi dell immagine richiedesse un tempo superiore al tempo proposto come periodicit un certo numero di frame sarebbero persi L aumen to della frequenza di acquisizione delle immagini non farebbe altro che aumentare il numero di frame persi nelle situazioni critiche senza grandi benefici nelle situazioni comuni MTiExpert viene rieseguito ogni 20ms per poter leggere correttamente tutti i dati provenienti dal sensore XSens MTi che impostato per produrre dati a una frequenza di 50Hz x PoseExpert viene rieseguito ogni 20ms in quanto necessario che esso ascolti sia i messaggi di VisionExpert che di MtiExpert che lavora no rispettivamente con periodo di 66ms e 20ms Per non perdere messaggi di MTiExpert necessario lavorare alla stessa frequenza di quest ultimo membro SequencerExpert viene rieseguito ogni 66ms in quanto il suo funziona mento strettamente legato a quello di PoseExpert anche se solo per quanto riguarda la conoscenza della posizione della carrozzina che essendo prodotta dal sistema di visione lavora a una
81. abili e che la guida della carrozzina risulta fluida e precisa anche con il software di controllo attivo Genova 25 ottobre 6 novembre 2007 http festivalscienza it Politecnico di Milano 11 ottobre 2007 160 Capitolo 7 Risultati sperimentali Figura 7 2 Guida della carrozzina con Joypad durante il trasferimento effettuato per partecipare al convegno Disability and advanced research Figura 7 3 Alcune immagini utilizzate per la calibrazione della telecamera 7 3 Localizzazione basata su marker Il sistema di localizzazione realizzato si rivelato efficiente e adatto agli scopi per cui stato realizzato Per valutare i risultati ottenuti impor tante considerare sia il funzionamento del sistema di localizzazione che la procedura di calibrazione e di setup prevista Come descritto nella Sezione 5 5 3 necessario prima di tutto calibrare la telecamera con un tool di calibrazione standard Questa operazione va effettuata una sola volta in quanto una volta bloccata la messa a fuoco dell ottica della telecamera i parametri di calibrazione restano costanti Per calibrare la telecamera con il tool Camera Calibration Toolbox for Matlab 3http www vision caltech edu bouguetj calib_doc 7 3 Localizzazione basata su marker 161 Figura 7 4 Alcune immagini del sistema di calibrazione registrate Zi mm bi rad di rad 2234 8 0 0166 3 0841 2271 3 0 0175 3 1078 2266 2 0 0069 3 1200 2282
82. ade migliori per correggere gli errori del sistema Sarebbe anche possibile implementare ex novo un sistema di localizzazione basato su fiducial marker cercando se esistono condizioni pi favorevoli che permettono di sviluppare un sistema pi preciso rispetto a quello utilizza to e ad altri sistemi attualmente disponibili Ad esempio sarebbe possibile studiare se forme differenti dei marker possono portare a risultati migliori nella stima della posizione e della rotazione del marker 8 4 Software di controllo Il software di controllo sviluppato adeguato ai compiti che deve svolgere e ha come punti di forza la strutturazione modulare gestita dal framework DCDT e il controllore fuzzy Mr Brian L elevato grado di separazione e 8 5 Funzionalita estese 191 indipendenza tra i moduli software realizzati garantisce che il software di controllo sia facilmente modificabile ed estendibile Allo stesso modo anche il controllore fuzzy basato su un architettura gerarchica che permette di comporre in modo semplice comportamenti indipendenti garantendo quindi la semplicit di estensione e di modifica Una possibile modifica del software proposta gi nella Sezione 7 6 la divisione del software su pi unit di calcolo In particolare si ipotizzato di dividere la parte relativa al sistema di localizzazione che si occupa di analiz zare le immagini rilevate dalla telecamera dal resto del sistema di controllo Questa modifica
83. aggiungere altri sensori che si dedichino ai casi non coperti dai laser ad esempio uno scanner laser inclinato verso il basso permetterebbe di rilevare sia le rampe di scale in discesa che quelle in salita Alcune foto scattate durante un percorso eseguito in modo semiautono mo dalla carrozzina in cui l unico comando imposto era la direzione avanti mentre tuttii movimenti rotazionali erano imposti dal sistema di evitamento ostacoli sono mostrate in Figura 7 20 Alcune immagini riprese in sogget tiva dalla carrozzina durante l esecuzione dello stesso percorso con le stesse modalit sono mostrate in Figura 7 21 7 5 Guida autonoma Il sistema di guida autonoma permette di pianificare percorsi grazie all uso del pianificatore Spike e di eseguirli seguendo successivamente i via point identificati L obiettivo di questo lavoro come nel caso della guida semiau tonoma mostrare che il sistema sviluppato costituisce una buona base per lo sviluppo di comportamenti complessi che servano a dotare di autonomia la carrozzina elettrica Come illustrato nella Sezione 6 2 7 il sistema di guida autonoma basato sull azione congiunta di pi membri del sistema 178 Capitolo 7 Risultati sperimentali Figura 7 21 Guida semiautonoma in un percorso con ostacoli ripresa dal sedile della carrozzina e Il sistema di localizzazione necessario per conoscere la posizione della carrozzina nel momento in cui si richi
84. alco lare percorsi tra celle non occupate da ostacoli I percorsi calcolati da A 6 2 Componenti software 113 percorso pianificato scsuese via point 6000 4 start 4000 be 4 i goal i passano 2000 q E i gt i of ioperasfazzonto 2000 4 4000 H 1 L L 1 L 4000 2000 0 2000 4000 6000 8000 x mm Figura 6 1 Esempio di percorso calcolato da Spike su una mappa vengono semplificati ove possibile per evitare tratti eccessivamente segmen tati Il risultato dell operazione di pianificazione una lista di via point da seguire per realizzare il percorso oppure un errore nel caso non sia possibile raggiungere il punto di destinazione importante sottolineare che il piani ficatore non tiene conto in alcun modo n della cinematica del robot n del suo orientamento Un esempio di mappa con alcuni ostacoli e la lista di via point calcolata per raggiungere la destinazione specificata mostrata in Figura 6 1 6 2 Componenti software Il software di controllo basato sul framework DCDT quindi i moduli che lo compongono sono dei membri di DCDT stesso Considerando i compiti che il software di controllo deve svolgere impossibile presentare il sistema complessivo e spiegarne le funzionalit mentre risulta pi semplice esami nare quali sono le operazioni che il software deve svolgere nei casi semplici in cui chiama
85. ale 42 Capitolo 3 Panoramica sulla robotica mobile 3 5 4 Predicati fuzzy Un predicato un letterale a cui si associa un valore di verit Detto P un predicato atomico e a una costante il valore di verit di P a indicato con P a dato da up a dove con up x si indica la funzione caratteristi ca di un insieme fuzzy associato al predicato P Il valore di verit di un predicato composto calcolato tramite ricorsione utilizzando le operazioni precedentemente definite con i valori di verit delle sue singole componenti CQ 1 Q QA R min Q R QVR maax Q R 3 5 5 Regole fuzzy Una regola fuzzy una struttura formata da un antecedente e da un conse guente L antecedente un predicato fuzzy semplice o composto mentre il conseguente specifica dei valori fuzzy da associare a opportune variabili di uscita Un esempio di regola fuzzy SE TargetADestra ALLORA RuotaADestra 3 6 BRIAN e Mr BRIAN Mr BRIAN Multilevel Ruling BRIAN 3 estensione di BRIAN BRIAN Reacts by Inferring ActioNs 4 un sistema di controllo di robot basato su comportamenti che permette di ridurre la complessit di progettazione e garantire la riusabilit e la modularit dei comportamenti grazie all uso della composizione gerarchica informata presentata in 3 Il cuore del sistema la logica fuzzy presentata nella sezione precedente con la quale si descrivono i comportam
86. ale mentre una pressione della leva destra sposta il controllo sulla leva analogica di destra In fase di progetto si preferito non assegnare compiti predefiniti agli altri pulsanti lasciandoli liberi per funzioni di debug e di supporto allo sviluppo del prototipo 4 2 7 Derivazione delle alimentazioni Tutti i dispositivi presentati sono attivi e necessitano di alimentazione elet trica Alcuni di essi come la telecamera UniBrain Firel400 o il sensore XSens MTi prelevano l alimentazione necessaria al loro funzionamento di rettamente dalla porta del computer a cui sono collegati Altri come il monitor o i sensori laser necessitano di una alimentazione separata La carrozzina come descritto nella Sezione 4 1 2 dotata di due batterie da 60 Capitolo 4 Progetto di una carrozzina robotica 12V da 70Ah collegate in serie che rendono dunque disponibile una tensione di alimentazione di 24V L autonomia garantita dalle batterie permette di alimentare tutti i dispositivi senza bisogno di introdurre batterie aggiuntive Utilizzando le sole batterie della carrozzina elettrica possibile utilizzare il caricabatterie fornito con la carrozzina stessa per riportare in efficienza tut to il sistema e si garantisce che finch la batterie della carrozzina hanno una carica accumulata sufficiente al movimento anche il sistema che realizza le funzionalit aggiuntive fuzionante Utilizzando alimentazioni separate la procedura di carica
87. ale con cui si muove la carrozzina permetterebbe di raffinare ulteriormente il comportamento La funzionalit di guida autonoma stata testata su percorsi semplici e si evidenziato che il sistema permette di pianificare correttamente percorsi ma l esecuzione corretta e precisa di tali percorsi non garantita Infatti come mostrato nella Sezione 7 5 la carrozzina non segue in modo molto 8 6 Controllo della carrozzina tramite BCI 193 preciso il percorso pianificato e questo pu portare in alcuni casi a non com pletare l esecuzione del percorso Con il presente lavoro si mostrato che il sistema di localizzazione proposto il software di controllo sviluppato e i sensori utilizzati sono in grado di pianificare ed eseguire semplici percorsi ma per arrivare a sviluppare comportamenti di controllo del moto autonomo che possano essere effettivamente utilizzati da utenti disabili necessario un lavoro di raffinamento consistente del sistema e delle regole che governano il movimento autonomo al fine di ottenere un esecuzione del percorso pi fluida e precisa Ad esempio sarebbe necessario studiare il comportamen to del sistema di guida autonomo nel momento in cui uno dei via point previsti nel piano non raggiungibile a causa di ostacoli imprevisti In que sto caso sarebbe necessario studiare un metodo automatico che comandi la ripianificazione al fine di trovare un percorso alternativo 8 6 Controllo della carrozzina tr
88. ali Sistema di riferimento assoluto W Sistema di riferimento assoluto W b Figura 5 4 a Albero delle relazioni indirette b riduzione a stella Iterando questo procedimento possibile in linea di principio coprire zone di vaste dimensioni e creare in modo automatico la mappa dei marker nel sistema di riferimento assoluto La struttura minima che descrive le relazioni indirette che permettono di giungere al sistema di riferimento assoluto quella di un albero ovvero di un grafo aciclico in cui due nodi sono connessi esattamente da un cammino Con l applicazione ricorsiva delle equazioni descritte possibile ridurre l albero a una stella con al centro il sistema di riferimento assoluto come mostrato in Figura 5 4 Si noti che gli archi inversi non mostrati in figura possono essere calco lati ove necessario con la relazione T vi Th L La relazione tra il sistema di riferimento assoluto e il marker base TM deve essere specificata senza procedure automatiche ma facile individuare delle posizioni in cui porre il marker base che permettano di semplificare questa relazione Ad esempio se si posiziona un marker sul soffitto in un angolo di una stanza possibile definire un sistema che giace sul pavimento come sistema assoluto che sia semplicemente traslato di una quantita pa ri all altezza della stanza rispetto al sistema di riferimento solidale con il marker 5 4 3 Relazioni multiple
89. alit automatica ma il computer non acceso o non comuni ca correttamente i comandi dopo un breve periodo di tempo la carrozzina viene automaticamente riportata in modalit manuale Allo stesso modo si garantisce che senza la volont dell utente il computer non possa prendere il controllo del moto della carrozzina Il software da realizzare per il microprocessore PIC segue il seguente flusso 1 Leggere i valori in ingresso agli ADC e sottrarli a coppie per ottenere due valori assoluti che rappresentano la posizione assoluta della leva lungo le due direttrici http www maxim ic com 1ca bot 1 una carrozzina ro Capitolo 4 Progetto d 66 pin 1 a pin 2 rs232 y PROGRAMMAZIONE RICCO pin 2 a pin 3 rs232 Q R 23 5V pin 3 a pin 5 rs232 oho DIF GND a GND g u 3 a _ Feu Ue 3 cre a W aiee en eu GND PGC GND ohb PIE EZS ogri gt re C2 C3 C4 C5 opzionali 55 8 GND ZzZ090 8 FREE 100n e7 VDD LDAC GND ICS VOUTB lt 7 C4 100n sek vss F 3 GND GND SDI VOUTA CHIA PULSANTE MOPABZ2 PIC 18F4x2 RAQIANO MCLRICSP_vpp f 1N4148 RA ANI RAZIANZIVBEF i 624 RAGIANGVREF VDD LDAC R2 RAATOCLK _ A hr RASIAN amp SSLVDIN OSC1 CLKI ICS VOUTB LM324N i ABOMNTO ABIANTI P 5 IC2B PRB2 INT2 OSC2ICLKO RAS SCK VSS A RBSICCP2 sl RB4 SDI VOUTA OOOO 2 2K RBSIPGMAICSP_VLVP LM324N PaCS RB6IPGCKICSP_CLK 8 RB7 PGDAICSP_DATA 10 ee ACOTIOSO TIC
90. alizzare un parser che si occupi della lettura delle coppie nome valore di tutti i messaggi che saranno scambiati dal sistemi 6 1 2 Pianificazione di percorsi La pianificazione di percorsi una attivit fondamentale per dotare di au tonomia un robot mobile e in questo caso una carrozzina elettrica con funzionalit estese Si scelto di integrare nel software di controllo della carrozzina il pianificatore Spike realizzato nel progetto FollowMe 45 Non sono stati analizzati altri pianificatori in quanto Spike si rivelato dopo alcuni test preliminari semplice da utilizzare e adatto allo scopo Inoltre pu essere considerato un progetto maturo corredato di documentazione e codice sorgente Spike permette di definire una mappa metrica dell ambiente La mappa deve essere specificata staticamente con linee e cerchi che descrivono e de limitano l ambiente La mappa statica ovvero non pu essere modificata dopo che stata caricata dal pianificatore tuttavia possibile aggiunge re dinamicamente ostacoli che permettono di aggiungere informazioni utili alla pianificazione La suddivisione della mappa in celle per la ricerca del percorso effettuata con l uso di zone quadrate il cui lato pu essere im postato Le celle sono collegate tra loro in base all adiacenza dei lati che le costituiscono La ricerca di un cammino da un punto di partenza a una destinazione effettuata con il noto algoritmo A che permette di c
91. amite BCI Un ulteriore ipotesi di sviluppo della carrozzina prevede la possibilit di in trodurre un modulo BCI Brain Computer Interface per comandare il moto della carrozzina Un modulo BCI rappresenta un interfaccia diretta tra le attivit celebrali e un computer Le tecniche di monitoraggio delle attivit celebrali sono numerose tra cui la pi semplice meno invasiva ed economi ca basata sull uso di un elettroencefalografo e piccoli elettrodi posizionati sullo cuoio capelluto Numerosi studi in questo ambito sono al vaglio della comunit scientifica 14 e permettono di identificare con diverse tecniche i comandi impartiti dall utente Innanzitutto necessario distinguere tra tec niche basate sulla rilevazione di attivit volontarie del cervello o su attivit involontarie chiamate anche potenziali evocati Le attivit volontarie del cervello possono essere sfruttate per realizzare un interfaccia BCI in quan to esse sono modulabili dalla persona dopo un periodo di addestramento Sarebbe dunque possibile comandare la carrozzina con un effetto proporzio nale alla volont dell utente ovvero comandando la carrozzina attraverso una sorta di joystick immaginario Utilizzando invece tecniche basate sul riconoscimento dei potenziali evocati sarebbe possibile ad esempio propor re all utente un interfaccia grafica su cui sono visualizzate quattro frecce direzionali che vengono illuminate in ordine ca
92. ando il sistema elettronico di controllo dei motori di carrozzine commerciali Le funzionalit offerte sono l evitamento di collisioni e la navigazione autonoma CCPWNS Universit di Notre Dame USA 1994 2000 12 acronimo di Computer Controlled Power Wheelchair Navigation System permette di riprodurre percorsi precedentemente appresi dal sistema Il sistema di visione identifica landmark Non prevede nessun tipo di evitamento ostacoli SENARIO Finlandia 1995 1998 21 una carrozzina commerciale mo dificata Permette l interazione nella guida dell utente con il siste ma di evitamento ostacoli La navigazione autonoma gestita con 16 Capitolo 2 Ausili alla mobilita e tecnologia una mappa interna La localizzazione affidata a una rete neurale L architettura software di tipo distribuito OMNI Universit di Hagen Germania 1995 1999 6 acronimo di Office wheelchair with high Maneuverability and Navigational Intelligence una carrozzina elettrica omnidirezionale commerciale modificata Le funzionalita sono organizzate in forma gerarchica evitamento ostacoli semplice modi operativi per compiti specifici distanza costante da muri attraversamento porte e navigazione autonoma Rolland I e II Universita di Bremen Germania 1997 2002 24 25 26 sono state oggetto di numerose evoluzioni e studi Sono basate su una carrozzina commerciale Meyra Genius 1 522 che di
93. ano la creazione di un circuito d interfaccia che permette di comandare la carrozzina tramite l u so di un computer l interfacciamento di sensori per il rilevamento ostacoli e lo sviluppo del software di controllo che gestisce e governa il moto della carrozzina permettendo comportamenti di guida assistita e guida autono ma La guida assistita permette di evitare collisioni con ostacoli mentre la guida autonoma permette alla carrozzina di pianificare ed eseguire percorsi localizzandosi nell ambiente grazie a una telecamera e a degli algoritmi di posizionamento basati su landmark artificiali passivi Le funzionalit sono state testate in ambienti semplici e controllati il prototipo di carrozzina dal le funzionalit estese realizzato risultato ben progettato e corrispondente agli obiettivi proposti Ringraziamenti Innanzitutto vorrei ringraziare il Prof Matteo Matteucci per avermi dato la possibilita di lavorare a questo progetto Insieme a lui desidero ringra ziare l Ing Davide Migliore e l Ing Giulio Fontana che hanno contribuito a coordinare i lavori proponendo soluzioni sempre nuove per affrontare i problemi incontrati Inoltre vorrei ringraziare il Prof Andrea Bonarini per avermi fatto conoscere l AirLab e le possibilit di progetto offerte e per es sersi sempre interessato allo sviluppo del lavoro e ai risultati che mano a mano venivano raggiunti Grazie per il clima cordiale e fraterno ma allo stesso tempo costrut
94. antisce di mantenere inalterate le caratteristiche salienti del profilo originale diminuendo il numero di punti utilizzati L algoritmo ricorsivo descritto in pseudo codice il seguente Algoritmo 1 SemplificaProfilo array p n s L 1 SemplificaProfiloRicorsivo p 1 n s L L L n return L Algoritmo 2 SemplificaProfiloRec p i j s L if i lt j then m indice del punto a massima distanza da pjp i lt m lt j d distanza tra pm PiPj if d gt s then SemplificaProfiloRicorsivo p i m s L L L m SemplificaProfiloRicorsivo p m j s L end if end if La complessit computazionale di questo algoritmo nel caso medio di O nlog n e nel caso pessimo di O n Il numero di punti generati non pu essere stabilito a priori ma dipende dal profilo considerato e dalla soglia utilizzata abbastanza logico considerare che nel caso specifico in cui si utilizza l algoritmo ovvero per semplificare i profili generati da uno scanner 6 2 Componenti software 143 i i rf i i Profilo Originale 4000 F sa Profilo Semplificato 7 I 3000 i A J N sara ee LL E el 2000 1 J E 1000 F 4 ot 4 E aa a oe 3 J 1000 4 2000 E 4 RP dl 3000 4 4000 b f J f 5000 Jj 4 1 L L 1 L 1 L 1 1 4000 3000 2000 1000 0 1000 2000 3000 4000 x mm Figura 6 18 Profilo rilevato da uno scanner laser Hokuyo URG 04LX in rosso e semplificazione ottenuta con una s
95. apitolo 5 Localizzazione con landmark artificiali 400 T T T T T T T T 300 J 200 100 4 y mm 100 fd 200 300 400 500 600 500 400 300 200 100 0 100 200 300 x mm Figura 5 18 Posizione x e y della telecamera nel sistema di riferimento marker in un percorso rettangolare con correzione dei valori 3 y e tz 1800 1700 1600 z mm 1500 1400 Figura 5 19 Posizione x e y della telecamera nel sistema di riferimento marker in un percorso rettangolare con correzione dei valori 3 y e tz 5 6 Semplificazione da 6 a 3 dof 105 marker e sistema assoluto illustrate nella Sezioni 5 3 1 e 5 4 devono essere opportunamente modificate La procedura di localizzazione di un oggetto mobile illustrata nella Se zione una volta stimati i valori costanti 8 e 4 e t diventa la seguente 1 Acquisizione di un immagine dalla telecamera 2 Processo di analisi svolto dal sistema di fiducial marker se non vengo no rilevati marker nell immagine comunica l impossibilit di stabilire la posizione altrimenti memorizza la matrice Th e l identificativo i del marker 3 Crea la matrice I con i dati Bi We tes 4 Controlla se la matrice IL disponibile tra quelle memorizzate nel sistema se non disponibile comunica l impossibilit di stabilire la posizione altrimenti calcola Di Equazione 5 3 La creazione della relazione diretta tra du
96. are quattro insiemi per descrivere il dato di distanza e ci si quindi limitati a utilizzarne solo alcuni tra quelli proposti Le zone in cui ogni scansione suddivisa sono 8 e sono numerate in senso antiorario a partire da 0 come mostrato in Figura 7 10 Considerando che i sensori sono posizionati uno a destra e uno a sinistra della carrozzina 7 4 Guida semiautonoma 167 Figura 7 12 Zone utilizzate nella specifica dei tipi di dati fuzzy relativi a entrambi gli scanner laser facile notare che la zona 0 del sensore sinistro simmetrica alla zona 7 del sensore destro la zona 1 del sensore sinistro simmetrica alla zona 6 del sensore destro etc Grazie a questa simmetria si associato un diverso tipo di dato fuzzy a ogni coppia di zone simmetriche e non a ogni singola zona In Tabella 7 2 sono riportati i limiti angolari di ogni zona e il tipo di dato che si scelto di associare mentre la forma e i limiti degli insiemi fuzzy associati a ogni tipo di dato identificato riportata in Tabella 7 3 In Figura 7 11 sono mostrate le zone coperte dagli insiemi fuzzy specificati per il sensore di sinistra mentre in Figura 7 12 sono sovrapposte le zone coperte da entrambi i sensori laser Le tre tonalit di colori differenti utilizzate indicano gli insiemi fuzzy associati alle distanze il verde pi scuro indica VICINO e le tonalit pi chiare rappresentano in ordin
97. arrozzina reso difficoltoso dalla presenza di sensori ingombranti o da altri dispositivi l uso della stessa risulta proble matico Inoltre in molti progetti sono stati utilizzati sensori e componenti molto costosi impedendo di fatto un possibile sviluppo di tali progetti ver so prodotti effettivamente commercializzabili In questo lavoro di tesi si modificata una carrozzina elettrica commerciale applicando le tecniche della robotica mobile per realizzare un prototipo in grado di offrire funzionalit intelligenti ma dotato di caratteristiche di usabilit e costo comparabili con quelle di una carrozzina elettrica tradizionale Oggetto di questo lavoro stata la progettazione e realizzazione di un circuito che collegato alla scheda di controllo interna al joystick di comando comunica al computer la posizione della leva del joystick e permette di con trollare il movimento della carrozzina La carrozzina stata poi equipaggia ta con un computer a basso costo alimentato dalle batterie della carrozzina stessa Tale computer caratterizzato da dimensioni molto ridotte e bassi consumi elettrici stato utilizzato per l esecuzione del software di controllo basato su logica fuzzy Questo software stato realizzato secondo il principio della composizione gerarchica informata HIC 3 ed basato su una archi tettura multiagente realizzata grazie a un framework apposito DCDT 33 Il software risulta estremamente m
98. arrozzina e le zone laterali posteriori non sono per nulla coperte dalla scansione Considerando per che la direzione principale di marcia consiste in movimenti frontali il problema di coprire la zona posteriore con sensori per il rilevamento ostacoli non viene trattato in questo lavoro ma rimandato eventualmente a sviluppi successivi Per garantire che urti accidentali non danneggino i sensori laser si 4 4 Progetto di una struttura di supporto 71 Figura 4 12 Progetto della struttura di protezione del sensore laser Hokuyo URG 04LX progettata una struttura di protezione che accoglie il sensore e i cavi di ali mentazione e trasferimento dati E significativo considerare che i danni al sensore possono essere provocati anche da urti indiretti come nel caso di torsioni dei cavi che si ripercuotono sui sensori stessi La progettazione e la successiva realizzazione di una struttura di protezione per i sensori laser stata semplificata dall uso di un tappo a vite in PVC per tubi dell acqua comunemente utilizzato in edilizia Il diametro esterno del tappo di cir ca 135mm e internamente presenta una superficie piatta su cui possibile montare il sensore laser e fissare saldamente i cavi Eventuali urti acciden tali vanno a impattare sulla robusta parete verticale del tappo evitando di torcere e piegare i cavi o di danneggiare direttamente il sensore Il progetto del posizionamento del sensore all interno del tappo a vite
99. as solutamente legata al controllo del movimento della carrozzina stessa la riproduzione di file audio Grazie alla creazione di un membro chiamato Au dioExpert possibile richiedere l esecuzione di contenuti multimediali alla carrozzina Il membro AudioExpert ha un database di file audio identificati da un codice numerico e attiva la riproduzione di un file audio nel momento in cui riceve un messaggio di richiesta con un codice numerico valido Lo sviluppo di questo membro si reso necessario per permettere di utilizzare la carrozzina durante il Festival della Scienza di Genova 2007 come robot guida Durante l esposizione la carrozzina era teleguidata con il joypad e quando era necessario l utente che la guidava comandava Genova 25 ottobre 6 novembre 2007 http festivalscienza it 6 2 Componenti software 123 MSG_FROM_MOTION_BRIEF MotorExpert BrianExpert MSG_FROM_BRIAN MSG_FROM_MOTION_INFO MSG_FROM_JOYPAD_ BRIEF MSG_FROM_JOYPAD_INFO AudioExpert JoypadExpert MSG_REQUEST_AUDIO Figura 6 8 Schema a blocchi del sistema con i membri BrianExpert MotorExpert JoypadExpert e AudioExpert l esecuzione di brani di spiegazione dei luoghi raggiunti sempre utilizzando il joypad La funzionalit di riproduzione di contenuti multimediali pu sembrare al momento superflua ma potr essere sviluppata in futuro per segnalare all utente eventuali condizioni di errore o di peri
100. azione 5 4 permette dunque di conoscere la posizione assoluta di un oggetto mobile in base a 84 Capitolo 5 Localizzazione con landmark artificiali e Ccodice identificativo del marker visibile in un immagine e Matrice di rototraslazione che ne descrive la posizione e l orientamento rispetto alla telecamera rilevata dal sistema di fiducial marker e Informazioni statiche memorizzate in fase di calibrazione del sistema 5 3 1 Procedura di localizzazione L algoritmo che permette di analizzare un immagine acquisita da una te lecamera per calcolare la posizione dell oggetto mobile su cui montata la telecamera quindi il seguente 1 Acquisizione di un immagine dalla telecamera 2 Processo di analisi svolto dal sistema di fiducial marker Se non vengono rilevati marker nell immagine comunica l impossibi lit di stabilire la posizione Altrimenti memorizza la matrice T e Videntificativo del marker 3 Controlla se la matrice TH disponibile tra quelle memorizzate nel sistema Se non disponibile comunica l impossibilit di stabilire la posizione Altrimenti calcola TW Equazione 5 3 5 4 Relazioni tra sistemi di riferimento Nella sezione precedente si supposto che le relazioni TH fossero note Queste relazioni sono in genere a sei gradi di libert tre per la traslazione che avviene tra i sistemi di riferimento e tre per la rotazione intorno agli assi Misurare manualmente q
101. azioni nell ordine delle migliaia di milli metri e valori nel range 1 1 non giustificano errori cos grossolani Prove pratiche hanno dimostrato che la moltiplicazione di una matrice di questo tipo per la sua inversa comporta errori trascurabili nell ordine di 10715 rispetto alla matrice identit attesa La seconda ipotesi si dunque rilevata essere la causa della degradazione dei dati di posizionamento Uno studio approfondito sugli effetti dell errore complessivo che si genera a causa del rumore sui 6 parametri che specificano una matrice di rototraslazione alquanto complesso Come verifica dell ipo tesi della presenza del rumore sufficiente considerare la variabilit dei dati di posizione nei casi statici riportata in Tabella 5 1 Dalla matrice illustrata nell Equazione 5 10 si nota che il valore f combinazione lineare delle tre coordinate tz ty e tz con la prima colonna della matrice che essendo com posta da funzioni trigonometriche assume valori compresi tra 0 e 1 Dato che la configurazione tipica d uso prevede che la coordinata z sia un valore nell ordine dei metri ovvero delle migliaia di millimetri un piccolo errore nella stima dell orientamento e della posizione del marker comporta grandi errori nell inversione della matrice Lo stesso tipo di errore influisce anche sul calcolo di ty e Un cambio di unit di misura non migliorerebbe i ri sultati in quanto i problemi n
102. bile stato studiato estesamente da diversi autori e nel corso degli anni varie architetture sono state proposte Le tre principali sono descritte in 18 e sono e Gerarchica e Reattiva e Ibrida Una nuova architettura che conserva i pregi delle tre architetture proposte ma che usa un meccanismo differente per la gestione dei comportamenti stata proposta in 3 seguendo il principio della Composizione Gerarchica Informata HIC e sar trattata nella Sezione 3 6 3 4 1 Architettura gerarchica L architettura gerarchica stata proposta verso la fine degli anni sessanta e Vapproccio da essa utilizzato considerato classico nel campo dell Intelligen za Artificiale Questo paradigma stato il primo a essere utilizzato per la progettazione di controllori robotici ed basato sulla scomposizione verticale del problema di controllo in una serie di unit funzionali Ogni unit ha il compito di provvedere all esecuzione di un attivit specifica Come visibile in Figura 3 9 le attivit sono svolte in modo sequenziale e il coordinamento tra esse dunque implicito nella struttura dell architettura stessa L attua zione sequenziale crea per un legame stretto tra i livelli in quanto l azione di controllo di un livello non pu essere prodotta prima del termine delle attivit dei livelli precedenti con un conseguente ritardo inserito tra una percezione e l attuazione di un comando Il tempo di es
103. ca di controllo un sistema di triangolazione per il calcolo delle distanze Questa particolarit garantisce misure pi accurate a distanze elevate dove i sistemi basati sulla triangolazione sono meno accurati Cause d errore Tra le cause d errore pi comuni che possono inficiare la bont della misura di un sistema a tempo di volo si evidenziano e Variazione della velocit di propagazione dell onda e Errori nella rilevazione dell istante di tempo di arrivo dell eco e Errori dovuti al sistema di conteggio del tempo e Interazione tra l onda emessa e la superficie riflettente La velocit di propagazione della luce considerabile costante mentre quella del suono fortemente influenzata dalla temperatura dell ambiente e in modo meno marcato dall umidit Gli errori nella rilevazione dell istante di tempo in cui l onda riflessa arri va al rilevatore sono dovuti alla degradazione dei fronti del segnale impulsivo dunque difficile stabilire la soglia che identifica l effettiva ricezione del se gnale Se si usa un meccanismo a soglia fissa si identificano in maniera errata le superfici pi riflettenti in quando il loro segnale giunge al rilevatore non degradato e viene quindi calcolata una distanza inferiore a quella reale Per ovviare a questo problema si utilizzano soglie variabili in base al tempo che intercorso dall invio del segnale Il conteggio del tempo in un sistema di misura di distanza ba
104. carrozzina e il computer 4 3 1 Progetto di un circuito di interfaccia 4 3 2 Protocollo di comunicazione 4 4 Progetto di una struttura di supporto 4 4 1 Posizionamento dei laser 00 4 4 2 Posizionamento della lena af ees ie Sas i i 4 4 3 Progetto della struttura 4 5 Software di controllo LL 4 5 1 DCDT 5 Localizzazione con landmark artificiali 5 1 Approcci alla localizzazione indoor 5 2 Fiducial Marker 5 2 1 ARToolKit 5 2 2 ARTag 5 2 3 ARToolkitPlus 5 2 4 Localizzazione con fiducial marker 5 3 Posizione assoluta con telecamera mobile 5 3 1 Procedura di localizzazione 5 4 Relazioni tra sistemi di riferimento 5 4 1 Relazioni dirette 5 4 2 Relazioni indirette 5 4 3 Relazioni multiple 5 5 Realizzazione del sistema di localizzazione 5 5 1 Scelta del sistema di gestione dei fiducial marker 5 5 2 Posizionamento dei marker e della telecamera 5 5 3 Prove effettuate 5 6 Semplificazione da 6 a 3 dof 5 6 1 Stima delle costanti 04 5 6 2 Risultati ottenuti
105. cellulari grazie anche alla possibilit di eseguire i calcoli in virgola fissa L algoritmo RPP non disponibile sui dispositivi mobili in quanto richiede una precisione di calcolo non raggiungibile con sistemi a virgola fissa Attualmente in sviluppo un nuovo strumento nominato Studierstu be Tracker3 che ha molte funzionalit in pi rispetto ad ARToolKitPlus Purtroppo questo tool non attualmente disponibile al pubblico 5 2 4 Localizzazione con fiducial marker L obiettivo della localizzazione quello di conoscere con una certa affidabi lit e precisione la posizione di un robot o pi in generale di un oggetto rispetto a un sistema di riferimento assoluto D altra parte i tre sistemi bassati su fiducial marker presentati permettono data un immagine in cui visibile un marker di conoscere la posizione e l orientamento di tale marker in 6 gradi di libert degree of freedom DOF nel sistema di riferimento tele camera Montando in posizione fissa la telecamera e posizionando i marker sull oggetto mobile i sistemi basati su fiducial marker permettono di trovare direttamente la posizione dell oggetto Purtroppo questa soluzione risulta poco scalabile infatti se l ambiente da coprire molto vasto e diviso in zone necessario utilizzare pi telecamere per mantenere sempre in vista l ogget to mobile L uso di pi telecamere comporta costi aggiuntivi e un notevole sforzo di calibrazione del sistema per
106. cifica il tipo del messaggio sender stringa che specifica il nome dell host che invia il messaggio timestamp specifica l istante in cui il messaggio stato inviato formato dai campi SEC e USEC preceduti da un underscore _ Il timestamp misura il tempo trascorso dalla mezzanotte del 01 01 1970 module specifica il nome del membro che ha creato e inviato il messaggio http robocup elet polimi it MRT 112 Capitolo 6 Software di controllo Il contenuto del campo MESSAGE libero e pu essere specificato in qual siasi modo all atto della costruzione del messaggio Per mantenere semplice il formato del contenuto si scelto di utilizzare solo campi di nome D Ogni campo contiene a sua volta una sola coppia di dati Il primo elemento della coppia una stringa che non contiene spazi e il secondo un numero rea le La coppia di dati rappresenta una consueta struttura di corrispondenza nome valore Ad esempio un messaggio completo di tipo 15 inviato da un membro di nome A residente sull host 127 0 0 1 all istante di tempo 1203435321 434723 contenente la coppia nome valore X 2 5 risulterebbe codificato cos lt MESSAGE id 15 sender 127 0 0 1 timestamp _1203435321 434723 module A gt lt D gt X 2 5 lt D gt lt MESSAGE gt Il parsing del campo MESSAGE svolto dall estensione di DCDT prece dentemente presentata mentre data la struttura molto semplice del corpo del messaggio facile re
107. colo o anche per integrarla con un sistema di comando vocale per la carrozzina A ogni invocazione AudioExpert attende un messaggio di tipo MSG_ REQUEST_AUDIO che contiene una sola coppia nome valore di nome reqaudio che specifica il codice numerico del file audio da eseguire L attesa del mes saggio bloccante ovvero a differenza dei membri presentati fino a ora se non vengono inviati messaggi di tipo MSG_REQUEST_AUDIO il membro non termina la sua esecuzione Come gi detto l unico membro che attualmente si occupa di produrre tali messaggi JoypadExpert che stato esteso asso ciando alla pressione dei bottoni numerati 5 6 7 e 8 l invio di messaggi di richiesta dei file audio con indice rispettivamente pari a 0 1 2 e 3 Lo schema complessivo del sistema con i membri MotorExpert Bria nExpert JoypadExpert e AudioExpert mostrato in Figura 6 8 6 2 4 Evitamento ostacoli Uno dei compiti a cui deve assolvere il software di controllo quello di garan tire la sicurezza dell utente durante la guida provvedendo a integrare le in formazioni sensoriali per proporre comportamenti di evitamento collisioni ed 124 Capitolo 6 Software di controllo evitamento ostacoli I sensori che permettono di rilevare gli ostacoli presenti nell ambiente sono i due scanner laser Hokuyo URG 04LX montati in posi zione simmetrica uno a destra e uno a sinistra della carrozzina Il membro che si occupa della gestione di un singol
108. comincia l esecuzione del percorso L esecuzione del percorso si basa sul raggiungimento sequenziale dei via point e il meccanismo con il quale la carrozzina viene guidata basato su un comportamento fuzzy di nome FollowViaPoint aggiunto a Mr Brian al 138 Capitolo 6 Software di controllo primo livello Per permettere il funzionamento di tale comportamento necessario specificare la distanza che separa la carrozzina dal punto da rag giungere e l angolo che sussiste tra la direzione in cui orientata la carrozzina e il segmento che congiunge il punto in cui si trova la carrozzina con il punto da raggiungere come mostrato in Figura 6 15 Questi due dati denotati con rho_to_via_point e angle_to_via_point e trasmessi nel messaggio MSG_FROM_ SEQUENCER_VIAPOINT_INFO permettono una volta fuzzyficati e associati a predicati che li valutano di scrivere regole che permettano il movimento au tonomo della carrozzina come ad esempio AND ViaPointNear ViaPointN i fwrwcmd VSLOWFW rxlxcmd STEADY Dove con ViaPointNear si indica che la distanza dal punto da raggiungere non elevata e con ViaPointN si indica che la carrozzina orientata nella direzione della retta che la congiunge al punto da raggiungere Il messaggio MSG_FROM_SEQUENCER_VIAPOINT_INFO appena descritto sem pre accompagnato dal messaggio MSG_FROM_SEQUENCER_EXECUTING_PATH che contiene un solo campo di nome erecuting_path con valore 1 Qualora d
109. comunicare con il circuito per poter comandare la carrozzina nel modo desiderato e Acquisizione dei comandi impostati con il joypad che rappresenta un altro dispositivo di input con il quale l utente pu comunicare la sua volont al computer e Lettura dei dati relativi alle scansioni di ogni sensore laser in mo do da rendere disponibili le informazioni sugli ostacoli individuati e controllare la carrozzina al fine di compiere movimenti sicuri e Acquisizione di immagini dalla telecamera per calcolare la posizione assoluta della carrozzina nell ambiente con il metodo presentato nel Capitolo e Acquisizione delle informazioni dal sensore inerziale e giroscopico XSens MTi al fine di conoscere lo stato della carrozzina ovvero il modo in cui s muove e Pianificazione di percorsi per la guida automatica acquisendo dall u tente la destinazione da raggiungere e Esecuzione del percorso pianificato con l obiettivo di raggiungere il punto di destinazione controllando il moto della carrozzina in modo da seguire il percorso stabilito 6 1 Compiti del software di controllo 111 e Controllo e gestione di eventuali errori guasti e malfunzionamenti per garantire la sicurezza dell utente ed evitare situazioni pericolose e Visualizzazione dell interfaccia grafica punto di incontro tra l uten te e il software di controllo Essa deve essere uno strumento utile per controllare il funzionamento del sistema e permettere all
110. contrata ma molto difficile che il sensore laser non rilevi un ostacolo presente Questo garantisce che il siste ma di evitamento ostacoli possa basarsi su informazioni con un alto grado di affidabilit Allo stesso tempo per bisogna considerare che gli scanner laser effettuano scansioni solo su un piano che nel nostro caso stato posto parallelo al terreno Questo non permette di rilevare oggetti come i tavoli il cui profilo rilevato dagli scanner laser relativo solo ai sostegni che poggia no sul terreno mentre quasi tutta la superficie di ingombro viene ignorata Anche tutti gli oggetti che sono pi in basso rispetto al piano di scansione non sono rilevabili cos come rampe di scale in discesa che non risultano assolutamente visibili o in salita di cui viene erroneamente stimata la di stanza in quanto viene misurata la distanza dello scalino che si trova ad altezza da terra pari a quella dello scanner laser Inoltre la zona posteriore e parte della zona laterale della carrozzina non sono coperte dalla scansione dei due scanner laser utilizzati Per migliorare il sistema di rilevamento ostacoli possibile aggiungere nuovi sensori per coprire le zone non considerate Per questo si potrebbero utilizzare scanner laser inclinati verso il terreno che permetterebbero di ri levare ostacoli bassi e rampe di scale in discesa rilevabili come assenza del 8 3 Sistema di localizzazione 189 piano del pavimento Altrimenti
111. corsi su una mappa per la quale necessario disporre di un modulo di pianificazione Inoltre il software deve assolvere ad altri compiti di secondaria importanza per quan to riguarda il controllo ma utili per il debugging e lo sviluppo del sistema come la produzione di log o la visualizzazione on line del comportamento del sistema A causa nella numerosit e della diversit dei compiti che il software deve 13http robocup elet polimi it MRT 4 5 Software di controllo 75 svolegere indispensabile prevedere che alcune operazioni siano eseguite in parallelo Sarebbe impossibile infatti gestire tutte le operazioni individuate in modo rigido con un ciclo di polling Per garantire l esecuzione parallela necessario sviluppare un applicazione multi processo o multi thread La scelta in fase progettuale caduta sui thread ed dettata soprattutto dal l eccessivo overhead di memoria per la gestione dei processi La necessit di far comunicare i vari thread pu essere gestita in diversi modi Il pi sem plice preso in considerazione in una prima fase costituito dal meccanismo a lavagna in cui ogni modulo scrive le sue informazioni in uno spazio di memoria condivisa gestendo opportunamente la sincronizzazione tra gli ac cessi Questa tecnica non permette per di gestire facilmente la separazione del software su pi unit di calcolo mentre un meccanismo basato ad esem pio sullo scambio di messaggi TCP IP lo r
112. cui si rilevata l immagi ne Il timestamp codificato su due diversi valori il primo rappresenta il conteggio dei secondi il secondo i microsecondi e X Y e A rappresentano la posizione e l orientamento della carrozzina rispetto al sistema di riferimento assoluto utilizzato La posizione espressa in millimetri e l orientamento in radianti I messaggi inviati da VisionExpert sono ricevuti da PoseExpert PoseEx pert come illustrato nella Sezione 6 2 5 utilizzato per ora solo come ripe titore dei messaggi ovvero ricevendo i messaggi da VisionExpert si occupa di comporre il messaggio MSG_FROM_POSE_ACTUAL_POS Qualora PoseExpert rilevi che VisionExpert non ha inviato messaggi per un certo periodo di tempo invia il messaggio MSG_FROM_POSE_UNKNOW_ACTUAL_POS Il messaggio MSG_FROM_POSE ACTUAL POS costituito dai campi position_ x position_y e position_a che hanno lo stesso significato dei campi X Y e A del messaggio MSG_FROM_VISION_POS Il messaggio MSG_FROM_POSE_UNKNOW_ ACTUAL_POS non contiene invece alcun valore Si noti che in questo caso non necessario inserire un campo know_pos analogo a know_speed del messaggio MSG_FROM_POSE_ACTUAL_SPEED che assuma valore 1 quando la posizione nota e 0 quando non lo L utilita del flag know_speed legata al suo utilizzo nelle condizioni CANDO del controllore fuzzy che utilizza direttamente le 134 Capitolo 6 Software di controllo MTiExpert Visi
113. della stima diminuisce all aumentare del numero di campioni Un albero di copertura a peso massimo rappresenta dunque una riduzione del grafo utilizzabile per la creazione delle relazioni tra il sistema di riferimento assoluto e i singoli marker Un criterio che que sto metodo trascura per la lunghezza del percorso che collega il nodo di partenza con i nodi destinazione Percorsi pi lunghi cio che coinvolgono 5 6 Semplificazione da 6 a 3 dof 107 pit moltiplicazioni di matrici fanno si che gli errori si accumulino maggior mente rispetto a percorsi brevi Considerando pero che le posizioni relative tra i marker sono piuttosto regolari risulta poco probabile che si generino percorsi di lunghezze molto differenti Un certo numero di passaggi intermedi dunque necessario Un esempio di grafo da cui si estrae l albero di copertura di peso massimo mostrato in Figura 5 20 Il numero di relazioni su cui stata effettuata la media specificato tra parentesi angolari Si noti che il peso associato alla relazione dal sistema assoluto al marker di base ininfluente in quanto il suo arco l unico uscente dal nodo del sistema di riferimento assoluto quindi far sicuramente parte dell albero di copertura 108 Capitolo 5 Localizzazione con landmark artificiali Capitolo 6 Software di controllo In questo capitolo viene analizzato e descritto il software di controllo della carrozzina elettrica dalle funzional
114. di cui si occupa DCDT permette di specificare la periodicit di ogni membro Ad esempio si pu ipotizzare che 76 Capitolo 4 Progetto di una carrozzina robotica un membro che si occupa di acquisire e analizzare immagini da una teleca mera sia ripetuto 15 volte al secondo quindi con un perido di 66ms Qualora la singola esecuzione supera il tempo limite di 66msec l esecuzione succes siva immediata Ogni membro ha la facolt di chiedere la terminazione dell Agor in cui opera provocando l esecuzione della routine di chiusura di tutti i membri La comunicazione tra agenti realizzata mediante pacchetti TCP IP e pu avvenire sia all interno dell Agor sia tra diverse Agor residenti su mac chine differenti I messaggi sono tipizzati ovvero sono distinguibili in base ad un codice che li caratterizza Il meccanismo che gestisce la ricezione dei messaggi basato su un sistema ad iscrizioni ovvero ogni membro specifica quali messaggi vuole ricevere Ad esempio considerando A B e C membri distinti X e Y tipi di messaggi disponibili A iscritto alla ricezione di X e B iscritto alla ricezione di Y possibile fare in modo che C produca messaggi sia di tipo X che Y e g una lettura sensoriale codificata in due differenti modi e che A e B li ricevano Si noti che nessun membro a conoscenza della presenza degli altri ma solo delle informazioni scambiate dunque possibile creare un sistema flessibile Ad esempio
115. di di rotazione che lo possano portare a impattare con il muro stesso aiutandolo quindi a percorrere tratti rettilinei delimitati da pareti Si noti che qualora Vapproccio al muro fosse effettuato in direzione perpendicolare la carrozzina si arresterebbe senza iniziare il moto di inseguimento del profilo del muro Quando si impone il comando avanti e sono presenti ostacoli frontali decentrati rispetto alla carrozzina ed disponibile uno spazio di manovra sufficientemente ampio la carrozzina modifica la sua traiettoria in modo da evitare l ostacolo ovvero schiva l ostacolo e continua la sua marcia in una direzione differente da quella scelta dall utente Il percorso seguito dalla carrozzina per evitare con una svolta a sinistra un ostacolo di forma rettan golare mostrato in Figura 7 18 Il comando imposto era quello di avanti quindi una volta evitato l ostacolo la carrozzina ha proseguito nella dire zione utilizzata per evitare l ostacolo Un eventuale aggiramento completo dell ostacolo lasciato alla volont e al comando dell utente che verrebbe assistito in questo caso solo nella prima fase della manovra La posizione della carrozzina durante il moto stata rilevata con il sistema di localiz zazione ma importante ricordare che il sistema di evitamento ostacoli 7 4 Guida semiautonoma 175 2000 2200 2400 N 2600 f y mm 2800 3000 3200 3400 500 0
116. e modificate o ignorate Il livello intermedio costituito da comportamenti simili a quelli del livel lo pi basso ma i dati di input non provengono solo dai sensori ma anche dal pianificatore del livello pi alto Questo livello responsabile del consegui mento degli obiettivi elementari proposti dal pianificatore ma l esecuzione dei comandi proposti subordinata alle decisioni del livello sottostante Il terzo livello tipicamente riservato ad un pianificatore e comunica al livello intermedio le singole azioni del piano da svolgere Il feedback dei livelli inferiori verso i livelli pi alti permette di gestire i casi in cui sia necessaria una ripianificazione delle attivit La struttura tipica di questa architettura illustrata in Figura 3 11 Una caratteristica fondamentale di questo approccio non ottenibile con un architettura reattiva la possibilit di creare piani di esecuzione non banali grazie alla presenza di un modulo di pianificazione e allo stesso tempo di garantire tempestivit in situazioni urgenti 40 Capitolo 3 Panoramica sulla robotica mobile Pianificazione e Monitoraggio rf Pianificazione e Monitoraggio Sensori 1 Pianificazione Attuatori e Monitoraggio Comandi gt gt Figura 3 11 Scomposizione a tre livelli di un controllore robotico ibrido 3 5 Logica Fuzzy La logica fuzzy fu introdotta per la prima volta da Zadeh n
117. e Ceriani and Marco Dalli Guida all installazione dell interfaccia per pc Laboratorio di Intelligenza Artificiale e Robotica A A 2006 2007 195 196 BIBLIOGRAFIA 10 Simone Ceriani and Marco Dalli Robotizzazione carrozzina elettrica per disabili Laboratorio di Intelligenza Artificiale e Robotica A A 2006 2007 Hi J Connell and P Viola Cooperative control of a semi autonomous mobile robot In Proceedings of the IEEE International Conference on Robotics And Automation 1990 12 Guillermo Del Castilloa Steven Skaara Antonio Cardenasb and Linda Fehr A sonar approach to obstacle detection for a vision based au tonomous wheelchair Robotics and Autonomous Systems 54 967 981 2006 13 D Ding and R A Cooper Electric powered wheelchairs EEE Control Systems Magazine 25 22 34 2005 14 Guido Dornhege Increasing Information Transfer Rates for Brain Computer Interfacing phdthesis University of Potsdam 2006 15 Mark Fiala Vision guided control of multiple robots In First Canadian Conference on Computer and Robot Vision 2004 16 Mark Fiala Comparing ARTag and ARToolkit Plus Fiducial Marker Systems In IEEE International Workshop on Haptic Audio Visual Environments and their Applications pages 148 153 2005 17 Christian Geiger Joerg Stoecklein Florian Klompmaker and Robin Fritze Development of an Augmented Reality Game by Extending a 3D Authoring System In Proceedings of
118. e MEDIO e LONTANO mentre Vinsieme MOLTOLONTANO non mostrato per non complicare ulteriormente la figura Per poter sviluppare un sistema di evitamento ostacoli efficiente neces sario conoscere la velocit di movimento della carrozzina Senza questo dato 168 Capitolo 7 Risultati sperimentali Zona Inizio Fine Tipo di dato 0 67 5 37 5 MINDISTOST_LEFTO_RIGHT7 1 37 5 22 5 MINDISTOST_LEFT1_RIGHT6 2 22 5 7 5 MINDISTOST_LEFT2_RIGHT5 Left 3 7 5 7 5 MINDISTOST_LEFT3_RIGHT4 4 7 5 22 5 MINDISTOST_LEFT4_RIGHT3 5 22 5 67 5 MINDISTOST_LEFT5_RIGHT2 6 67 5 112 5 MINDISTOST_LEFT6_RIGHT1 7 112 5 157 5 MINDISTOST_LEFT7_RIGHTO O 157 5 112 5 MINDISTOST_LEFT7_RIGHTO 1 112 5 67 5 MINDISTOST_LEFT6_RIGHT1 2 67 5 37 5 MINDISTOST_LEFT5_RIGHT2 Right 3 37 5 22 5 MINDISTOST_LEFT4_RIGHT3 4 22 5 7 5 MINDISTOST_LEFT3_RIGHT4 5 7 5 7 5 MINDISTOST_LEFT2_RIGHT5 6 7 5 22 5 MINDISTOST_LEFT1_RIGHT6 7 22 5 67 5 MINDISTOST_LEFTO_RIGHT7 Tabella 7 2 Angoli per la suddivisione in zone della scansione effettuata con i sensori laser infatti il controllore sarebbe ad anello aperto in quanto esso governerebbe il moto della carrozzina senza conoscere e poter gestire gli effetti prodotti La stima della velocit tangenziale effettuata come presentato nella Se zione 6 2 5 integrando nel tempo i dati dell accelerazione lineare rile
119. e che i due progetti possano percorre strade di sviluppo parallele per essere integrati quanto entrambi saranno considerati sufficientemente maturi e affidabili Bibliografia 1 R C Arkin Motor schema based navigation for a mobile robot In Proocedings of the IEEE International Conference on Robotics and Automation 1987 M Billinghurst and H Kato Collaborative augmented reality Communications of the ACM 45 64 70 2002 A Bonarini M Matteucci and M Restelli A novel model to rule behavior interaction In Proceedings of the 8th Conference on Intelligent Autonomous Systems IAS 8 page 199 206 Amsterdam 2004 IOS Press Andrea Bonarini Giovanni Invernizzi Thomas Halva Labella and Mat teo Matteucci an architecture to coordinate fuzzy behaviors to control an autonomous robot Fuzzy Sets and Systems 134 2003 J Borenstein H R Everett L Feng S W Lee and R H Byrne Where am I Sensors and Methods for Mobile Robot Positioning 1996 U Borgolte H Hoyer C Biihler H Heck and R Hoelper Architectu ral Concepts of a Semi autonomous Wheelchair Journal of Intelligent and Robotic Systems 22 233 253 1998 G Bourhis K Moumen P Pino S Rohmer and A Pruski Assisted navigation for a powered wheelchair In International conference on systems man and cybernetics 1993 R Brooks A robust layered control system for a mobile robot IEEE Journal of Robotics and Automation 2 14 23 1986 Simon
120. e classico un insieme definito da una funzione carat teristica uy che valutata in corrispondenza di un elemento x pu assumere we 0 se a amp I solo i valori 0 o 1 1 se xel L estensione di questa definizione agli insiemi fuzzy prevede che la funzione caratteristica uy assuma valori reali compresi tra 0 e 1 esprimendo cio un grado di appartenenza all insieme J dell elemento x Un insieme fuzzy dunque una generalizzazione del concetto di insieme Un insieme canonico pu essere espresso con insiemi fuzzy utilizzando la funzione caratteristica a due valori precedentemente illustrata 3 5 2 Relazioni tra insiemi Fuzzy Le relazioni definite tra insiemi fuzzy sono l uguaglianza e il contenimento Un insieme fuzzy I uguale a J se e solo se la loro funzione caratteristica coincide puntualmente I J Va p x uy 2 Un insieme fuzzy I sottoinsieme di J se e solo se ogni elemento x dell universo ha un grado di appartenenza all insieme J al pi uguale al grado di appartenenza di x all insieme J ICJ amp Ve pr a lt s x 3 5 3 Operazioni tra insiemi Fuzzy Le operazioni definite su insiemi fuzzy sono intersezione unione e comple mento come per gli insiemi classici Queste operazioni non sono pero definite in modo univoco come invece avviene nel caso degli insiemi classici Faremo riferimento ai soli operatori proposti da Zadeh Hangs min pa x pp x haup r maax pa c uB male 1 p
121. e di percorsi 32 3 3 1 Classificazione dei pianificatori ooa 33 3 3 2 Metodi basati su grafi 33 3 3 3 Scomposizione in celle o oo 34 VII 3 3 4 Campi di potenziale 3 4 Architetture software per il controllo 3 4 1 Architettura gerarchica oo ali e 3 4 2 Architettura reattiva L00000 3 4 3 Architettura ibrida 2 00 3 5 Logica Fuzzy 3 5 1 Insiemi Fuzzy LL 3 5 2 Relazioni tra insiemi Fuzzy 3 5 3 Operazioni tra insiemi Fuzzy 3 5 4 Predicati fuzzy 2 00 3 5 5 Regole fuzzy L20000 3 6 BRIAN e Mr BRIAN 46 64 4 66 dee perito 3 6 1 BRIAN 3 6 2 Mr BRIAN LL 4 Progetto di una carrozzina robotica 4 1 Analisi dei requisiti 242454 4 ke eee i 4 1 1 Obiettivi 4 1 2 Otto Bock Rabbit 00000 4 2 Sensori e componentistica hardware 4 2 1 Sensori di distanza 2 4 2 2 Sensori inerziali e giroscopi 4 2 3 Sistemi di localizzazione 00 4 2 4 Computer di bordo LL 4 2 5 Periferiche s i ira arsaa mi doe E i EE a e d 4 2 6 Dispositivi di comando s eooo 4 2 7 Derivazione delle alimentazionij 4 3 Interfacciare la
122. e di questa tecnica di localizzazione il robot Minerva 47 Modello dell ambiente Con questa tecnica possibile confrontare le in formazioni acquisite dai sensori del robot con un modello dell ambiente noto Grazie a questa corrispondenza possibile determinare la posi zione del robot inoltre possibile estendere la mappa iniziale utiliz zando le nuove informazioni acquisite con tecniche che vanno sotto il nome di Simultaneus Localization and Mapping SLAM Tag Mobili attivi e sensori passivi sulle pareti Un tag attivo un dispo sitivo che emette un segnale identificativo ad esempio un ultrasuono che possa essere recepito da sensori in posizione nota In base agli istanti di tempo in cui il segnale emesso dai tag viene recepito dai diversi sensori possibile calcolarne la posizione ed eventualmente anche l orientamento 3 2 2 StarGazer Un esempio di sistema di rilevamento della posizione basato su landmark artificiali StarGazer I landmark sono superfici planari in grado di riflettere luce infrarossa tipicamente posizionate sul soffitto Grazie a un proiettore di raggi infrarossi accoppiato a una telecamera Figura 3 5 possile risalire al codice del landmark visibile e alla posizione relativa della telecamera rispetto ad esso Con questo sistema possibile coprire zone di diametro variabile tra i 2 5 mei 5 m con un singolo tag a seconda della distanza del soffitto La massima dista
123. e i segnali di tensione associati quando la leva in posizione centrale la tensione su entrambi i pie dini pari a 2 5V riferiti a massa Quando si muove la leva avanti uno dei due segnali sale fino a 3 75V e l altro scende fino a 1 25V Quando si muove la leva indietro il comportamento opposto quin di il range massimo di variazione relativa tra i due segnali di 5V Il comportamento dei piedini associati al movimento destra sinistra analogo 64 Capitolo 4 Progetto di una carrozzina robotica Figura 4 8 Scheda elettronica del joystick della carrozzina con evidenziato il connettore della leva Si noti che la presenza dell alimentazione di 5V sul connettore permette di alimentare anche il circuito di interfaccia che si intende realizzare Scollegando il connettore possibile creare un circuito di interfaccia che ciclicamente e Legge la posizione della leva e le comunica al computer e Interpreta i comandi del computer e li presenta all altro capo del connettore sotto forma di valori di tensione appropriati Per interfacciare la carrozzina al computer necessario creare una cor rispondenza tra i valori di tensione e i valori digitali di modo che si possa comunicare al computer la posizione della leva mentre per comandare la carrozzina necessario convertire i valori digitali in tensioni analogiche ap propriate Considerando queste necessit e la ciclicit con cui le operazioni devono essere svolte
124. e le modifiche da apportare alla carrozina sono numerose La modifica del joystick permette di interfacciarsi indirettamen te al bus dati ed pi praticabile in quanto non richiede la progettazione di circuiti di potenza e non richiede modifiche sostanziali e particolarmente invasive sulla carrozzina Un analisi preliminare della struttura del joystick ci ha confermato che questa soluzione era praticabile ed era effettivamente pi vantaggiosa 4 3 1 Progetto di un circuito di interfaccia L analisi del joystick ha messo in luce la presenza di un connettore a 7 pie dini visibile in Figura 4 8 che permette di accedere facilmente ai segnali di tensione della leva Con l uso di un oscilloscopio stato possibile misu rare la tensione continua presente sui piedini del connettore giungendo alle seguenti conclusioni e Due piedini hanno la funzione di portare l alimentazione di 5V e il riferimento di massa alla leva e Un piedino non connesso e questo facilmente individuabile dalla mancanza di un filo elettrico di collegamento e I restanti quattro piedini producono segnali di tensione che descrivono la posizione della leva Muovendo la leva lungo la direttrice avanti indietro i valori di tensione che variano sono quelli di due soli piedini mentre i restanti due sono associati al movimento destra sinistra I valori di tensione prodotti sui piedini sono differenziali infatti consi derando il movimento avanti indietro
125. e marker i e j supponendo noti i valori costanti Bi Vi fei fe i e avendo a disposizione un immagine in cui sono presenti entrambi i marker si effettua sostituendo i valori costanti in entrambe le matrici I passi da seguire sono dunque i seguenti 1 Rilevazione della matrice Th fornita dal sistema di fiducial marker 2 Rilevazione della matrice TM fornita dal sistema di fiducial marker 3 Creazione di T con Bi Nis ta 4 Creazione di Tir con bj 4 baj 5 Creazione di i 7 ue Per migliorare la precisione delle relazioni tra i marker consigliabile uti lizzare pi immagini in cui sono presenti sia il marker 7 che il j calcolare un certo numero di matrici BE 1 n ed estrarne i parametri pm 1 n J Mi J 4Jam 1 n La media dei singoli parametri permette di costruire la Mi matrice Th che identifica la relazione media stimata tra il marker e 7 Si noti che queste immagini cos come quelle necessarie per il calcolo delle relazioni tra i marker devono essere catturate direttamente dal sistema mobile con la telecamera nella posizione in cui sar realmente utilizzata per la localizzazione possibile utilizzare lo stessa sequenza di immagini sia per stimare i valori medi dei parametri di correzione che le relazioni tra i marker 106 Capitolo 5 Localizzazione con landmark artificiali Sistema di riferimento assoluto W Sistema di riferimento assoluto W
126. e velocit essa si sta muovendo ma solo a che velocit sta ruotando Studiando in modo empirico il comporta mento della carrozzina si per concluso che i movimenti pi problematici da eseguire per la carrozzina sono le rotazioni sul posto o con bassa velo cit in quanto l orientamento delle due ruote libere anteriori pu impedire o favorire la rotazione della carrozzina Il movimento in direzione frontale invece molto pi predicibile ovvero la carrozzina risponde in modo pi preciso al comando imposto con la leva Il dato relativo alla velocit rotazionale stato fuzzyficato con il tipo di dato SPEEDANGLE i cui insiemi fuzzy sono mostrati in Tabella 7 4 7 4 Guida semiautonoma 171 120 T T T T T 80 4 velocita m s er o T L 40 4 0 L fi L Ll L L 0 200 400 600 800 1000 1200 1400 tempo s Figura 7 13 Velocit calcolata come integrale dell accelerazione in un tempo di 20 minuti velocita m s Figura 7 14 Velocit calcolata come integrale dell accelerazione in un tempo di 10 secondi 172 Capitolo 7 Risultati sperimentali 0 225 T T media 0 2523 0 23 0 235 0 24 0 245 0 25 0 255 accelerazione m s 0 26 0 265 0 27 4 0 275 1 1 1 1 1 0 tempo s Figura 7 15 Accelerazione rilevata sull asse x in un tempo di 10 secondi con la ca
127. easurement o phase detection tra un onda continua emessa e quella riflessa e Sensori basati su radar a modulazione di frequenza ovvero sulla rile vazione del cambio di frequenza tra l onda emessa e quella restituita 3 1 2 Misura di distanza a tempo di volo Molti sensori attuali usano il metodo della misura del tempo di volo per misurare la distanza di un oggetto che produce un eco del segnale emesso Figura 3 1 Il tempo che intercorre tra l emissione del segnale e il suo ritorno pari al doppio dello spazio diviso per la velocit dell onda da cui si ricava facilmente la distanza dalla superficie _ 2d _ tu ca 3 1 t L impulso emesso pu essere un ultrasuono un onda radio o un impulso luminoso A seconda del tipo di segnale emesso la velocit di propagazione varia notevolmente il suono in aria si propaga a circa 0 3 m ms la luce a 0 3 m ns La complessit dei sensori e dei circuiti elettrici di controllo e conteggio del tempo dipende notevolmente dal tipo di segnale utilizzato Con alcuni tipi di segnale in particolare con i laser possibile garantire che il percorso seguito dopo la riflessione sia identico a quello di andata ovvero non sia influnzato dalle caratteristiche geometriche della superficie quindi possibile porre il generatore del segnale e il ricevitore molto vicini 3 1 Sensori per il rilevamento di ostacoli 21 o sovrapposti evitando cos di dover inserire nella logi
128. econdo una banale corrispondenza lineare con i pi intuitivi valori compresi tra 1 e 1 Si noti che per mantenere attiva la comunicazione con il circuito di controllo il valore di attuazione va inviato periodicamente al circuito di interfaccia Infatti il circuito dotato di un meccanismo di sicurezza basato un timeout che qualora non vengano ricevuti comandi di attuazione imposta la mo dalit di funzionamento a manuale Questo non un comportamento desiderabile e si scelto quindi di inviare periodicamente il valore di attua zione mantenendo il valore di attuazione precedente qualora non si ricevono messaggi che specificano nuovi valori come descritto al punto 2 Al punto 3 si invece introdotta una condizione sull invio dei messaggi al circuito ovvero che la modalit di funzionamento rilevata comunicata dal circuito stesso nella trama letta al punto 1 sia automatica infatti inutile invia re trame di comando al circuito di comando quando questo in modalit manuale in quanto tali messaggi sarebbero ignorati Il membro BrianExpert il cuore del controllo della carrozzina e gestisce l interfaccia con il controllore a comportamenti fuzzy Mr Brian Consideran do la sola funzionalit di guida con il joystick evidente che i dati di in gresso per il controllore fuzzy sono solo quelli specificati nel messaggio MSG_ FROM_MOTION_BRIEF inviato dal MotorExpert ovvero readmode readfwrw e readralz La fuzzyficazione
129. ecuzione di un ciclo di controllo dato dalla somma dei tempi di esecuzione dei singoli moduli tra i quali si pu sicuramente individuare come computazionalmente molto oneroso quello di pianificazione Un punto debole di questa architettura 3 4 Architetture software per il controllo 37 Sensori gt Attuatori Pianificazione Percezione Gestione del modello Esecuzione del piano Controllo dei motori Figura 3 9 Scomposizione verticale di un controllore robotico tipica dell architettura gerarchica costituito dalla sua rigidit infatti il malfunzionamento di un singolo mo dulo impedisce la corretta esecuzione di tutto il sistema La lentezza con cui gli ingressi provocano cambiamenti nelle uscite rende questa architettura adatta ad ambienti statici e predicibili 3 4 2 Architettura reattiva L architettura reattiva a differenza di quella gerarchica cerca di estromet tere il pianificatore dal controllo per rendere pi rapido e lineare il flusso delle informazioni tra il modulo di percezione e quello di attuazione Il controllore non ragiona su un modello del mondo ma dispone di un cer to numero di moduli elementari comportamenti Ciascun comportamento reagisce direttamente a un sottoinsieme di informazioni sensoriali e propone delle azioni per di raggiungere uno scopo elementare I comportamenti sono progettati indipendentemente gli uni dagli altri e la loro esecuzione paral lela Il
130. ede la pianificazione di un per corso e durante tutta l esecuzione del percorso per calcolare la distanza e l angolo tra la carrozzina e il via point e Il pianificatore necessario per calcolare il percorso teorico che porta dal punto di partenza al punto di arrivo e I membri che gestiscono i sensori laser sono necessari sia per identificare gli ostacoli dinamici da aggiungere alla mappa nel momento in cui si pianifica un percorso sia per fornire i dati relativi alle distanze dagli ostacoli durante l esecuzione del percorso e Il controllore fuzzy governa il moto della carrozzina per raggiungere i via point mantenendo attivo il comportamento di evitamento ostacoli x Innanzitutto necessario descrivere i due tipi di dati fuzzy utilizzati per la gestione del movimento della carrozzina ovvero VIAPOINTDISTANCE che descrive la distanza dal via point che si sta cercando di raggiungere e VIAPOINTANGLE che descrive la rotazione da compiere per orientare la carrozzina verso il via point Gli insiemi fuzzy utilizzati sono mostrati in Tabella 7 9 e le regole create per il movimento autonomo utilizzano come dati per le decisioni la distanza dal punto di via e la velocita rotazionale rilevata al tempo attuale e al ciclo precedente Per valutare il comportamento del sistema si sono effettuati test che han no permesso di conoscere le possibilita offerte dal sistema e di scoprirne i limiti
131. el 1965 55 ed stata largamente utilizzata nella realizzazione di controllori robotici Il termine fuzzy traducibile in italiano con sfumato o nebuloso ed proprio questo il concetto che sta alla base della logica fuzzy Nella logica classica il valore di un predicato pu essere vero o falso e g oggi fa freddo pu assumere valore vero o falso con valore convenzionale 0 e 1 Nella logica fuzzy il valore di verit di un predicato pu assumere un valore nel campo reale tra 0 e 1 quindi il confine tra un affermazione vera o falsa non netto ma pi sfumato Questa modellizzazione del concetto di verit pi attinente alle situa zioni reali rispetto alla logica classica Considerando il predicato d esempio utilizzato in precedenza non possibile stabilire il valore di verit assoluto al concetto di freddo mentre possibile darne una valutazione in termini pi sfumati come ad esempio abbastanza vero che oggi fa freddo dove con abbastanza vero si intende che pi vera l affermazione oggi fa freddo rispetto a oggi non fa freddo Gli elementi che costituiscono la logica fuzzy sono i seguenti e Insiemi fuzzy e Relazioni tra insiemi fuzzy e Operazioni su insiemi fuzzy e Predicati fuzzy 3 5 Logica Fuzzy 41 e Regole fuzzy 3 5 1 Insiemi Fuzzy Per introdurre la struttura degli insiemi fuzzy si fa riferimento alla seguente definizione di insiem
132. eme di tutti i livelli costituisce la struttura di controllo Il potere espressivo dell architettura subsumption elevato grazie alla possibilit di coordinare i comportamenti ma la progettazione della rete risulta molto complessa e i moduli risultano strettamente interconnessi e progettati l uno per l altro L architettura a moduli di competenza di Maes permette di associare ad ogni modulo un livello di attivazione che ne indica l importanza rispetto agli altri Il livello di attivazione stabilito dinamicamente in base alla situa zione ovvero a variabili di stato o a input del controllore Ogni modulo ha delle precondizioni che specificano quando quel particolare comportamento attuabile e delle postcondizioni che regolano le interazioni con gli altri moduli L architettura cos realizzata risulta rigida perch ogni modulo deve essere a conoscenza dell insieme dei moduli presenti per poter gestire correttamente l interazione con essi 3 4 3 Architettura ibrida L architettura ibrida nasce dal tentativo di integrare le due architetture pre cedenti in una struttura a livelli I livelli sono tipicamente tre Il pi basso responsabile dei comportamenti elementari puramente reattivi e collega direttamente informazioni sensoriali e attuatori Lo scopo di questo livel lo quello di reagire a situazioni urgenti e impreviste come la presenza di ostacoli vicini al robot Le proposte dei livelli superiori possono esser
133. enderebbe pi agevole Si scelto di utilizzare un framework software chiamato DCDT che stato studiato appositamente per realizzare applicazioni multiagente basate sui thread con comunicazione basata su messaggi TCP IP Il Capitolo 6 si occuper interamente della progettazione e dell architet tura del software di controllo in questo momento sufficiente introdurre il modulo DCDT che alla base insieme a Mr BRIAN della progettazione e della realizzazione dell intera architettura software 4 5 1 DCDT Nell ambito del progetto Milan Robocup Team stato utilizzato DCDT Device Communities Development Toolkit 33 un framework software che facilita l implementazione di agenti software che possono comunicare e scambiarsi informazioni DCDT si occupa anche dell esecuzione degli agenti infatti ogni agente creato in DCDT detto membro un thread che viene ese guito all interno di una Agor ovvero un processo che raccoglie pi membri e ne gestisce l esecuzione Il ciclo di vita di ogni membro costituito da 1 Inizializzazione del membro 2 Ripetizione periodica della funzione specifica del membro 3 Chiusura del membro La creazione di un membro avviene semplicemente specificando le azioni che ognuna delle tre fasi identificate deve svolgere Alla creazione dell Agora ogni singolo membro esegue la routine di inizializzazione e successivamente ripete la routine che specifica il compito
134. endo la posizione attuale il punto di destinazione e la descrizione degli ostacoli dinamici richiede al membro SpikeExpert di pianificare un percorso utilizzando il messaggio MSG_FROM_SEQUENCER_PLAN_REQUEST 3 Spike comunica a SequencerExpert il risultato della pianificazione in questo caso utilizzando il messaggio MSG_FROM SPIKE VIA POINT LIST 4 SequencerExpert pu ora iniziare a comandare il controllore fuzzy in modo da raggiungere successivamente i via point I messaggi in viati sono MSG_FROM_SEQUENCER_VIAPOINT_INFO e MSG_FROM_SEQUEN CER_EXECUTING_PATH Quest ultimo messaggio specifica che la guida automatica in esecuzione ed indicato in figura con lt 1 gt 5 Quando tutti i via point sono stati raggiunti compreso il punto di destinazione del percorso SequencerExpert invia il messaggio MSG_ FROM_SEQUENCER_ EXECUTING PATH per comunicare che la guida auto matica non pi attiva In Figura 6 20 mostrato il funzionamento del sistema che governa la guida automatica nel caso in cui durante l esecuzione di un percorso la posizione della carrozzina diventi ignota e successivamente torni nota Sup ponendo che sia gi in esecuzione un percorso ovvero che SequenceExpert comunichi periodicamente a BrianExpert le informazioni riguardo al via point da raggiungere si considera il caso in cui la posizione della carrozzi na risulta non pi nota comunicato tramite il messaggio MSG_FROM POSE_ UNKNOW_ACT
135. ensioni successive La disponibilit del codice sorgente del controllore la presenza di ampia documentazione e l elevato grado di sta bilit raggiunto grazie all uso in numerosi progetti tra cui Milan Robocup 3 Team e 45 hanno portato a scegliere questa architettura per il software di controllo della carrozzina Prima di progettare e realizzare il software che effettua il controllo del la carrozzina necessario analizzare quali sono i compiti specifici almeno ad alto livello a cui esso deve assolvere Innanzitutto il software deve co municare con il circuito di interfaccia in modo da comandare la carrozzina e acquisire la posizione della leva Anche i comandi imposti con il joypad devono essere recepiti e interpretati in modo da comandare correttamente la carrozzina Per quanto riguarda i dati rilevati dai sensori la sola acquisi zione spesso non sufficiente ma sono necessarie fasi di analisi dei dati o di modellizzazione In particolare per le immagini rilevate con la telecamera necessario svolgere l analisi dell immagine per rilevare il marker e calcolare la posizione della carrozzina nel sistema di riferimento assoluto mentre per i dati provenienti dai sensori laser necessario produrre un modello sintetico che permetta di riconoscere facilmente la presenza degli ostacoli Un altro compito molto importante per poter sviluppare un sistema di guida auto noma della carrozzina la possibilit di pianificare per
136. enti desiderati e le modalit di selezione del comportamento da utilizzare Sviluppata presso il Politecnico di Milano questa architettura stata utilizzata in alcuni progetti del gruppo di Intelligenza artificiale e Robotica come ad esempio Milan Robocup Team e FollowMe 45 3 6 1 BRIAN Brian un architettura di controllo basata su comportamenti che prevede un sistema di coordinamento per la scelta dei comportamenti attivi e per la fusione dei risultati basato su condizioni descritte in termini di variabili di stato e rilevazioni sensoriali Shttp robocup elet polimi it MRT 3 6 BRIAN e Mr BRIAN 43 Comportamenti fuzzy Un comportamento fuzzy costituito da un insieme di regole fuzzy vedi Sezione 3 5 5 Il raggruppamento di pi regole in un comportamento basato su una modellizzazione dell attivit che tale comportamento de stinato a svolgere Ad esempio un comportamento di evitamento ostacoli raggruppa tutte le regole che considerando i valori dei predicati sulla posi zione degli ostacoli e della direzione desiderata del robot agiscono in modo da modificare la traiettoria per evitare collisioni e raggiungere comunque l obiettivo Controllo fuzzy Il processo che permette di ragionare sui dati di input per produrre un output che rappresenta l azione di controllo proposta il seguente 1 Fuzzyficazione dei dati di ingresso 2 Valutazione del valore di verit dei p
137. era e il marker sviluppino un movimento relativo tale per cui gli unici valori variabili siano tz ty e aj Questa operazione va ripetuta per ogni marker che si vuole utilizzare nel sistema di localizzazione 5 6 2 Risultati ottenuti Per verificare se il metodo proposto effettivamente applicabile si sono riuti lizzati i dati del percorso rettangolare d esempio precedentemente illustrato Il risultato limitandosi alle sono coordinate x e y visibile in Figura 5 18 ed ben riconoscibile la forma del percorso realizzato Allo stesso modo anche l inserimento della coordinata z conferma la bont del risultato ottenuto co me mostrato in Figura 5 19 Per avere un ulteriore conferma dell affidabilit del metodo di correzione proposto si sono mantenuti costanti i valori Be Ve t e si sono realizzate altre prove di movimento del marker In questo modo abbiamo potuto verificare con un metodo di crossvalidazione che i valori medi utilizzati sono generali e i risultati ottenuti non sono applicabili solo al singolo caso di studio ma globalmente validi Ulteriori conferme di questi risultati sono riscontrabili nel Capitolo 7 che mostra i risultati sperimentali di questo lavoro di tesi 5 6 3 Procedure di localizzazione e riferimento tra i sistemi Alla luce dei problemi riscontrati e del metodo individuato per risolverli delineato le procedure di localizzazione e di creazione delle relazioni tra 104 C
138. erch qualora si richie da alla carrozzina di passare alla modalit manuale sar impossibile ritornare alla modalit automatica senza la volont dell utente Solo in situazioni critiche come malfunzionamenti del sistema del controllo rilevabili dal sistema stesso possibile che sia necessario chiedere il passaggio alla modalit manuale e furwcmd indica il valore di attuazione da impostare sul circuito per il comando avati indietro Un valore pari a 0 indica la posizione di riposo valori da 0 a 1 indicano la direzione avanti e da 0 a 1 indicano la direzione indietro ralacmd indica il valore di attuazione da impostare sul circuito per il comando destra sinistra Un valore pari a 0 indica la posizione di riposo valori da 0 a 1 indicano destra e da 0 a 1 indicano sinistra MSG_FROM_MOTION_BRIEF ha lo scopo di rendere disponibili le informa zioni essenziali lette dal circuito di interfaccia con la carrozzina Questo messaggio prevede tre coppie nome valore readmode indica se il circuito di comando sta operando in modalit manuale 0 o automatica 1 readfwrw comunica il valore della posizione della leva del joystick sulla direzione avanti indietro I valori ammissibili vanno da 1 a 1 con 0 che indica la posizione di riposo della leva i valori positivi indicano la leva in avanti e quelli negativi leva indietro readralx comunica il valore della posizione della leva del joystick sulla direzi
139. ercorsi precedentemente appresi e g Smart Wheelchair della Kanazawa University 40 e Regole di comportamento che governano le decisioni in base agli input e g SPAM 43 e Architettura Subsumption dove i comportamenti primitivi sono combinati per produrre comportamenti pi complessi e di alto livello e g Mister Ed 11 Le architetture sono solitamente strutturate a livelli Ai livelli pi bassi sono affidati i compiti puramente reattivi mentre quelli pi alti sono coinvol ti in processi decisionali di ragionamento automatico Per ulteriori dettagli si rimanda alla Sezione 3 4 2 2 7 Localizzazione e posizionamento Per garantire autonomia nella pianificazione dei percorsi necessario cono scere l ambiente in cui la carrozzina si muove Per fare questo possibile utilizzare mappe metriche che codificano le distanze e la posizione di ostaco li e muri oppure mappe topologiche che codificano le connessioni tra punti salienti Un altra possibilit quella di preparare dei percorsi nell ambiente con l uso di tracce colorate o magnetiche che siano riconoscibili da sistemi di visione o sensori Qualora non si voglia legare il movimento a percorsi specifici come quelli offerti dall uso di bande magnetiche o colorate necessario che la carrozzina 14 Capitolo 2 Ausili alla mobilita e tecnologia o pi in generale un robot mobile sia equipaggiato con un sistema di loca
140. eriori profilati da 490mm che svolgono la funzione di mensole di suppor to per alloggiare quanto necessario 12 Si prevede di alloggiare il sensore inerziale e giroscopico XSens MTi su una di queste mensole in posizione centrale e di fissare il computer di bordo alla base della struttura La struttura descritta stata progettata in modo da avere un impat to trascurabile sull accesso al sedile di guida sulla comodit e sul comfort dell utente 74 Capitolo 4 Progetto di una carrozzina robotica 4 5 Software di controllo Il compito di un software di controllo di robot mobili quello di integrare le informazioni disponibili e scegliere i comandi da inviare al sistema di attua zione per perseguire degli obiettivi Ad esempio utilizzando le informazioni sugli ostacoli presenti il software di controllo deve proporre valori di attua zione tali da evitare le collisioni o evitare gli ostacoli seguendo un percorso alternativo Nella Sezione 3 4 sono state descritte alcune architetture pro poste il letteratura per strutturare controllori robotici In particolare nella Sezione 3 6 stata presentata l architettura di controllo basata sulla com posizione di comportamenti proposta in 3 e 4 Tale architettura basata sulla definizione di comportamenti fuzzy permette di definire facilmente il sistema che governa il controllo del robot garantendo un elevato grado di flessibilit per est
141. erit associato all antecedente delle regola stessa Se ad esempio un comportamento avesse le seguenti due regole SE TargetLontano ALLORA Velocit VELOCE SE TargetVicino ALLORA Velocit MEDIA e i valori di verit associati alle regole fossero rispettivamente 0 4 e 0 6 le azioni proposte dal singolo comportamento considerato per la variabile Velocit risulterebbero VELOCE 0 4 e MEDIA 0 6 5 Fusione dei risultati Quando pi comportamenti sono attivi si pone il problema di fonde re i risultati in un valore sintetico da fornire agli attuatori BRIAN utilizza anche in questo caso regole fuzzy che permettono di specifica re il grado di motivazione di un comportamento Un comportamento pu essere attivo ma poco desiderato Si pensi ad esempio al caso in cui siano attivi due comportamenti uno per il raggiungimento di un target e l altro per l evitamento di ostacoli Mano a mano che un ostacolo si avvicina al robot il comportamento di evitamento ostacoli deve assumere priorit rispetto a quello di inseguimento del target Le regole che permettono di specificare quando un comportamento desiderato sono dette regole di WANT e il loro valore di verit funge da peso nella fusione dei risultati Ad esempio se il comportamento di evitamento ostacoli propone velocit in direzione frontale nulla e il comportamento di inseguimento del target propone velocit massima in avanti le regole WANT associate permettono di spostare il risultato
142. erte dalla carrozzina stessa I criteri che guidano il progetto di questo struttura sono Comodit per l utente La struttura non deve modificare la postura del Vutente e non deve intralciare l accesso alla carrozzina Semplicit di montaggio La struttura deve essere facilmente applicabile e rimovibile per permettere di riportare alle condizioni originali la car rozzina Questa caratteristica garantisce che nel caso siano necessari 4 4 Progetto di una struttura di supporto 69 interventi di manutenzione essi non siano complicati eccessivamente dalla presenza di una struttura aggiuntiva La semplicita di montag gio riguarda anche il fissaggio dei componenti alla struttura Pit la struttura offre possibilita di posizionare liberamente sensori e apparati hardware su di essa pi sara facile posizionare nel modo pi appro priato i componenti previsti e aggiungere nuovi componenti qualora si rivelino necessari Considerando che la carrozzina piuttosto ingombrante e che deve essere manovrabile in spazi ristretti necessario fare in modo che tutto ci che si monta sulla carrozzina non sporga dalla carrozzina stessa almeno per quanto riguarda la larghezza e la profondit per non intralciarne il movimento In altezza possibile eccedere in quanto questo non crea problemi nel normale movimento La larghezza massima della carrozzina rilevata in prossimit delle ruote posteriori di circa 0 6m e la lunghezza considerando anc
143. esti S Hayashi I Nourbakhsh and D Miller The smart wheelchair component system Journal Rehabil Res Dev 41 429 42 2004 44 R Simpson D Poirot and F Baxter The Hephaestus Smart Wheel chair system EEE Transactions on Neural Systems and Rehabilitation Engineering 10 118 122 2002 BIBLIOGRAFIA 199 45 Fabio Sora FollowMe composizione informata di reattivit e pia 46 47 48 49 50 5l 52 53 54 55 nificazione in un robot guida Master s thesis Politecnico di Milano 2005 D Tefft P Guerette and J Furumasu Cognitive predictors of young childrens readiness for powered mobility Developmental Medicine amp Child Neurology 41 10 665 670 1999 S Thrun M Beetz M Bennewitz W Burgard A B Cremers F Del laert D Fox D H nel C Rosenberg N Roy J Schulte and D Schulz Probabilistic Algorithms and the Interactive Museum Tour Guide Robot Minerva The International Journal of Robotics Research 19 972 999 2000 bisense Limited St Andrew s Road Chesterton Cambridge Regno U Unito Ubisense Brochure U bisense Limited St Andrew s Road Chesterton Cambridge Regno Unito Ubisense Datasheet 2006 U bisense Limited St Andrew s Road Chesterton Cambridge Regno Unito Ubisense System Overview 2007 Daniel Wagner and Dieter Schmalstieg ARToolKitPlus for Pose Trac king on Mobile Devices In Computer Vision Winter Worksh
144. ette alla carrozzina di muoversi automaticamente verso una destinazione specificata in un ambiente noto pianificando e seguendo un percorso adeguato Le motivazioni di questo lavoro nascono dal desiderio di superare le forti limitazioni di usabilit che le carrozzine elettriche attualmente in commer cio presentano nei confronti degli utenti affetti da specifici problemi motori Alcuni disturbi quali la spasticit limitano infatti fortemente la capacit di comandare una carrozzina elettrica tradizionale e possono dunque preclude re ogni possibilit di movimento autonomo a chi ne affetto influendo sullo stato di benessere fisico e psicologico delle persone che dipende fortemente 2 Capitolo 1 Introduzione dalla possibilita di essere autonomi negli spostamenti e nei movimenti come illustrato in 42 46 e commercializzati numerosi ausili che possono aiutare le persone con pro 20 Nel corso degli anni sono stati studiati progettati blematiche motorie a conseguire uno stato di indipendenza e una condizione di autonomia Tra di essi l ausilio che si dimostrato maggiormente utile alla categoria di persone afflitta da problemi motori la carrozzina sia essa a comando manuale o motorizzata In particolare la carrozzina elettrica assume un ruolo fondamentale nell assicurare la mobilit a coloro che sono affetti da disabilit motorie Purtroppo alcune categorie di disabili motori non sono in grado di uti
145. ettriche presenti sul mercato sono studiate per servire al meglio la persona disabile che le occuper Il sedile oggetto di studi di ergonomia in quanto deve garantire comfort anche per utilizzi prolungati nel tempo Su alcuni modelli il sedile a sua volta dotato di attuatori che permetto no con l uso dello stesso joystick di guida di adattarlo alla postura della persona che lo occupa senza necessit di intervento manuale L uso di una base commerciale la strada pi praticata e le modifiche riguardano la so stituzione del sistema di controllo dei motori con uno creato ad hoc Il joystick originale della carrozzina viene tipicamente estromesso dal control lo nella guida oppure il suo utilizzo mutuamente esclusivo con l uso delle funzionalit aggiuntive previste che saranno accessibili solo con l uso di un diverso dispositivo di comando La progettazione di dispositivi che si interfacciano con i bus dati gi pre senti sulla carrozzina permette un grado elevato di integrazione con le fun zionalit di base disponibili e permette di realizzare un sistema che compa tibile con tutte le carrozzine basate sullo stesso tipo di bus dati Le difficolt sono legate alla conoscenza delle specifiche elettriche del bus dati delle infor mazioni che si trasmettono su di esso e del protocollo che governa lo scambio dei messaggi Spesso i bus dati sono proprietari e le specifiche non accessibili con conseguente necessit di e
146. eve garantire pro tezione da guasti e corto circuiti I sensori laser hanno un consumo di potenza di circa 2 5W ciascuno che considerando il rendimento dell 80 del convertitore DC DC comportano un consumo complessivo di 6 25W sull a limentazione a 24V Il computer consuma al massimo 25W e il monitor 18W circa La potenza complessiva massima richiesta di circa 50W ovvero con una tensione di 24V la corrente assorbita supera di poco i 2A Al fine di evi tare rotture accidentali del fusibile si considerato un fattore di sicurezza di circa 2 5 volte utilizzando un fusibile da 5A Lo schema del sistema di derivazione delle alimentazioni riportato in Figura 4 7 http www power one com 4 3 Interfacciare la carrozzina e il computer 61 Sezionatore doppio Lede resistenza Fusibile Connettore batterie carrozzina Connettori 5 V Figura 4 7 Progetto della derivazione delle alimentazioni 4 3 Interfacciare la carrozzina e il computer Creare un interfaccia che permetta di guidare la carrozzina tramite i coman di inviati da un computer un passo fondamentale per l estensione delle funzionalit offerte da un carrozzina elettrica La possibilit di convogliare le informazioni rilevate dai sensori e di decidere un azione di controllo con un software residente sul computer permette di realizzare le funzionalit di guida assistita e movimento autonomo di cui si vuole dotare la carrozzina L
147. ffettuare operazioni di reverse engeenering per ricostruire le informazioni necessarie ad interfacciare apparati esterni con il bus Intercettando i segnali analogici prodotti dalla leva del joystick prima che essi siano campionati e codificati per essere immessi sul bus dati possibile 10 Capitolo 2 Ausili alla mobilita e tecnologia interfacciarsi al bus dati in modo indiretto Lo studio di questi segnali e la produzione di circuiti d interfaccia solitamente pi semplice dell analisi del protocollo del bus dati anche se lega strettamente il circuito di interfaccia al particolare modello di joystick utilizzato 2 2 2 La carrozzina elettrica come robot mobile Lo scopo primario della costruzione di una carrozzina con funzionalit au mentate sta nel fornire ausili alla mobilit pi efficienti e disponibili ad un pubblico pi vasto per diminuire le barriere e superare gli ostacoli che si presentano nel loro percorso di integrazione sociale Dal punto di vista prettamente scientifico per una carrozzina elettrica risulta essere un buon veicolo adatto ad applicazioni e studi di robotica mobile Le caratteristiche principali di una carrozzina elettrica vista come robot mobile sono e E progettata per muoversi in ambienti reali interni o esterni e Sviluppa velocit di spostamento sufficientemente elevate e E agile nei percorsi tortuosi e permette manovre agevoli in spazi stretti e dotata di una struttura robusta s
148. frequenza di 66ms SpikeExpert viene rieseguito ogni 500ms Il modulo SpikeExpert si occupa di eseguire le pianificazioni dei percorsi quindi il tempo di riesecuzione non critico ed stato scelto un valore piuttosto elevato in quanto ragionevole supporre che una volta richiesta una pianificazione non ne venga richiesta un altra in un tempo di pochi decimi di secondo 6 2 Componenti software 153 GuiExpert ha una periodicita di 100ms per garantire una visualizzazione sufficientemente fluida delle informazioni dell interfaccia grafica senza appesantire troppo l esecuzione dell applicazione AudioExpert ha una periodocit di 1 secondo in quanto la funzionalit non critica e qualora viene richiesta la riproduzione di un file audio ragionevole considerare che non passer meno di un secondo prima dell esecuzione di un nuovo brano ErrorExpert viene rieseguito ogni 100ms in quanto controlla solo i mes saggi di HokuyoExpert che anch esso eseguito ogni 100ms 6 2 12 Produzione di log Una funzionalit prevista per il software non ancora illustrata la produzio ne di log dettagliati e facilmente analizzabili I file di log sono utili sia per il debug dell applicazione sia per l analisi del comportamento del sistema al fine di studiare in che punti migliorarne il comportamento Le soluzioni individuate per produrre log dettagliati sono tre 1 Associare a ogni membro un file di testo che viene c
149. ftware 155 BrianExpert 0 020035 _ _ _ 0 02003 fr 4 0 020025 4 0 02002 fr 4 0 020015 4 dt sec 0 02001 4 0 020005 e a gt gi 0 02 0 019995 dl t sec Figura 6 24 Tempo di esecuzione del membro BrianExpert estratto dal file di log del sistema Figura 6 24 Allo stesso modo conoscendo le informazioni prodotte da gli altri membri possibile analizzare dati come posizione della carrozzina nell ambiente andamento della velocit nel tempo percorso pianificato e percorso effettivamente seguito etc L analisi dei file di log pu avvenire in modo manuale ovvero tramite l analisi della sequenza delle informazioni registrate oppure in modo auto matico L analisi manuale un metodo valido soprattutto per capire se il sistema si comporta nel modo previsto o per individuare quali condizioni hanno creato problemi all esecuzione del controllo L analisi automatica utile per valutare il funzionamento del sistema quando l esecuzione stabile Conoscendo infatti quali sono le informazioni che i singoli membri registrano durante la loro esecuzione possibile estrarre tramite l uso di script solo le informazioni salienti che descrivono porzioni del funzionamento del sistema Ad esempio supponendo che il membro BrianExpert richieda al sistema di logging di scrivere la stringa Brian E
150. he i poggiapiedi anteriori circa di 1m Tra i componenti individuati nella Sezione 4 2 gli unici che devono essere posizionati in modo particolare sono i due scanner laser la telecamera e il monitor touch screen La posizione e l orientamento dei laser influisce molto sugli ostacoli che essi possono rilevare Se si posizionano i laser vicino a parti della carrozzina o vicino al corpo dell utente il range angolare non occluso pu risultare molto ridotto Anche per quanto riguarda la telecamera che come detto deve inquadrare il soffitto la possibilit di occlusioni varia in base al suo posizionamento Il monitor touch screen deve essere posizionato in modo da essere ben visibile e raggiungibile dalla posizione di guida Tutti gli altri componenti sono da fissare alla struttura solo per questioni di utilit ovvero per renderne agevole il montaggio e la rimozione 4 4 1 Posizionamento dei laser I sensori laser scandiscono una zona planare di circa 240 e considerando di montarli parallelamente al terreno su cui si muove la carrozzina per garantire di rilevare il maggior numero di ostacoli necessario che essi siano il pi in basso possibile compatibilmente con la struttura della carrozzina Particolare attenzione deve essere posta nel garantire che la carrozzina stessa o la presenza del corpo dell utente non ostruisca le rilevazioni Per diminuire ulteriormente l altezza da terra dei sensori si ritenuto opportu
151. i Grazie alla conoscenza della posizione permette la navigazione automatica Pu apprendere e riprodurre percorsi grazie all uso di reti neurali Non implementa nessun sistema di identificazione e evitamento ostacoli SPAM Sciences USA 2003 2004 43 acronimo di Smart Wheelchair Assistance Module sviluppata come accessorio per motorizzare car rozzine manuali compatibile con numerosi modelli di carrozzi ne manuali La funzionalit offerta l evitamento delle collisioni L architettura software basata su regole di comportamento Rolland III Universit di Bremen Germania 2005 31 ha due scanner laser posizionati al livello del terreno uno in direzione frontale e uno rivolto all indietro Le ruote sono dotate di encoders per la cono scenza dell odometria Il sistema di visione si basa su una telecamera omnidirezionale per la ricerca di punti salienti nell ambiente 18 Capitolo 2 Ausili alla mobilita e tecnologia Figura 2 1 Carrozzine con funzionalita estese realizzate in ordine da sinistra a destra e dall alto in basso TinMan I TinMan Il Intelligent Wheelchair System OMNI NavChair Rolland II Capitolo 3 Panoramica sulla robotica mobile In questo capitolo vengono presentati i sensori e le tecniche tipiche della ro botica mobile che meglio si adattano all estensione delle funzionalita di una carrozzina elettrica Tra di essi possibile citare sensori per il rilevament
152. i sinistra 1 quella di destra e 2 il controllo digitale Premendo il pulsante associato a una leva analogica si imposta il comando con quella leva oppure qualora fosse gi attiva quella leva per il comando si passa il controllo al pannello digitale e joyregstop assume valore 0 o 1 Quando assume valore 1 indica la ri chiesta da parte dell utente di interrompere l esecuzione del program ma di controllo della carrozzina espressa mediante la pressione del pulsante 10 presente sul joypad Questa funzionalit utile in fase di test e debug dell applicazione ma sar rimossa quando si otterr un applicazione definitiva L analogia dei dati contenuti nel messaggio MSG_FROM_JOYPAD_BRIEF con quelli di MSG_FROM_MOTION_BRIEF evidente e permette di estendere il con trollore fuzzy al fine di supportare la guida combinata con i due dispositivi finora analizzati Il sistema di controllo risulta dunque esteso comprenden do ora oltre a MotorExpert e BrianExpert anche il modulo JoypadExpert come visibile in Figura 6 6 Per supportare contemporaneamente il comando da parte di joystick e joypad necessario aggiungere le seguenti funzionalit al controllore Mr Brian e Fuzzyficazione dei dati contenuti nei messaggi MSG_FROM_JOYPAD_BRIEF e introduzione dei predicati necessari e Specifica del comportamento FollowJoypadMotion e Attuazione mutuamente esclusiva di uno solo tra FollowJoypadMotion e FollowJoystickMotion
153. i attivazione s 0 026 0 024 0 022 l j 0 02 L 1 L L L 1 L L L 0 50 100 150 200 250 300 350 400 450 500 Numero attivazione Figura 7 27 Tempi di esecuzione del membro BrianExpert 0 036 1 i 0 034 4 0 032 4 0 028 0 026 Tempo di attivazione s 0 024 es 0 022 J Il i 0 02 L L L f 0 100 200 300 400 500 Numero attivazione Figura 7 28 Tempi di esecuzione del membro MotorExpert trarre analizzando i tempi di attivazioni rilevati per i membri MotorExpert e JoypadExpert i cui grafici sono riportati rispettivamente in Figura 7 29 7 28 e Nonostante i ritardi evidenziati nell esecuzione periodica del ciclo di con trollo il moto della carrozzina risulta comunque fluido e ben controllabile per evidente che la configurazione hardware scelta al limite delle sue capacit ed auspicabile che per sviluppare ulteriormente il sistema di con trollo della carrozzina sia introdotto un secondo computer su cui spostare alcuni membri In particolare si cercato di analizzare quale fosse il mem bro che pi richiede risorse di calcolo per la sua esecuzione Considerando le funzioni svolte facile supporre che il membro VisionExpert a cui affidata 7 6 Tempi di esecuzione
154. i calibrazione del sistema Scalabilit su vaste zone grazie al numero elevato di marker disponi bili Il problema principale riscontrato con il sistema di localizzazione co stituito dal rumore che affligge la misure della posizione e dell orientamento dei marker e che ha reso necessario lo sviluppo di un sistema di correzione dei dati rilevati Complessivamente il sistema di localizzazione corretto con le modalit proposte si comporta in modo adeguato alle richieste Infatti rende disponibile in tempo reale la posizione della carrozzina con una preci sione che ha permesso di utilizzarlo come informazione base per lo sviluppo del sistema di guida autonoma Un possibile sviluppo del sistema di localizzazione pu essere indirizzato al supporto di pi mappe di tag per supportare la localizzazione in ambienti differenti Si pensi ad esempio al caso in cui la carrozzina debba essere utilizzata dall utente sia nella sua abitazione che sul luogo di lavoro opportuno che il sistema di localizzazione sia in grado di riconoscere in base ai marker rilevati in che luogo si trova cos da riferire la posizione della carrozzina rispetto a un sistema di riferimento assoluto diverso per ogni ambiente considerato e comunicare al pianificatore quale mappa utilizzare Un altro sviluppo consiste in un analisi approfondita degli errori com messi nella stima della posizione e dell orientamento del marker in modo da valutare se esistono str
155. i comando al primo livello del controllore fuzzy sono ora tre ed necessario garantire la mutua esclusione tra le proposte di ognuno di essi In particolare opportuno inserire delle regole di attivazione dei comportamen ti CANDO che permettono la guida con il joystick in qualsiasi momento la guida con il joypad solo quando il joystick in posizione di riposo e la guida automatica solo quando entrambi i dispositivi di comando sono inutilizzati e il valore di executing_path comunicato da MSG_FROM_SEQUENCER_EXECUTING_ PATH pari a 1 Con la catena di priorit appena descritta si garantisce che qualora fosse attiva l esecuzione automatica di percorsi l utente pu comun que prendere immediatamente il controllo della carrozzina muovendo uno dei due dispositivi di comando L esecuzione del percorso riprende appena i di spositivi di comando a priorit maggiore vengono riportati in posizione di riposo Si noti che il comportamento di secondo livello che effettua l evitamento ostacoli sempre attivo qualsiasi sia il dispositivo che comanda il movimento della carrozzina Lo schema del controllore fuzzy a 2 livelli con i nuovi comportamen ti introdotti mostrato in Figura 6 16 mentre lo schema dell architettura composta dai membri che cooperano nella pianificazione ed esecuzione di un percorso mostrato in Figura 6 17 6 2 Componenti software 141 MSG_FROM_VISION_POS ONVINNOD WOS OL 09 SN Po
156. i sia di riconoscimento errato del contenuto informativo del marker A questi si aggiunge l imprecisione della procedura per la creazione di nuovi tag e la scarsa disponibilit di tag di base Un altra limitazione rappresen tata dall impossibilit di utilizzare strumenti standard per la calibrazione della telecamera e g Camera Calibration Toolbox for Matlab ma di doversi affidare a un software proprietario 5 2 2 ARTag ARTag usa marker quadrati con bordo nero e contenuto informativo basato sul codice a barre bidimensionale Datamatrix alcuni pattern sono visibili in Figura 5 2 Rispetto ad ARToolKit usa un diverso sistema di identifi cazione del bordo del marker non pi basanto su un meccanismo a singola soglia ma su rilevazione di contorni ARTag pi versatile in condizioni di luce variabile e riconosce correttamente il marker anche in presenza di occlusioni parziali dei bordi L uso di un codice digitale per la specifica del contenuto informativo del pattern riduce sensibilmente il numero di errori nel riconoscimento dei pattern e rende disponibile un elevato numero di tag differenti 1http www vision caltech edu bouguetj calib_doc standard ISO IEC16022 5 2 Fiducial Marker 81 Figura 5 3 Pattern di ARToolKitPlus tre di tipo simple ID e tre BCH ID 5 2 3 ARToolKitPlus ARToolKitPlus un evoluzione di ARToolKit utilizza lo stesso metodo del predecessore per riconoscere
157. i tipo MSG_FROM_MOTION_BRIEF 2 Esegue il ciclo di controllo di Mr Brian con i due comportamenti FollowJoystickMotion e ModeCmdAuto descritti 3 Invia il messaggio MSG_FROM_BRIAN con l azione di controllo calcolata al punto precedente Lo schema a blocchi del sistema composto dai membri BrianExpert e MotorExpert mostrato in Figura 6 4 mentre un diagramma che illustra il flusso dei messaggi in un ciclo di controllo illustrato in Figura 6 5 6 2 2 Guida con joypad La prima estensione considerata al sistema proposto consiste nel supportare l interazione tra due dispositivi di comando aggiungendo anche il joypad senza fili e il membro JoypadExpert che si occupa della sua gestione 6 2 Componenti software 119 MSG_FROM_MOTION_BRIEF MotorExpert BrianExpert MSG_FROM_BRIAN MSG_FROM_MOTION_INFO Figura 6 4 Schema a blocchi del sistema con i soli membri BrianExpert e MotorExpert MotorExpert BrianExpert Lettura i Posizione i Joystick MSG_FROM_MOTION_BRIEF MSG_FROM_BRIAN iControllo Fuzzy Invio Comando Figura 6 5 Flusso dei messaggi tra MotorExpert e BrianExpert JoypadExpert si occupa di leggere lo stato del joypad e produrre mes saggi di tipo MSG_FROM_JOYPAD_BRIEF e MSG_FROM_JOYPAD_INFO Il messaggio MSG_FROM_JOYPAD BRIEF contiene due coppie nome valore che hanno il compito di indicare il valore per il comando della carrozzina proposto dal joypad e joypadfwrw indica la posizione della leva de
158. il sistema reagisce in maniera differente in base al posizionamento della carrozzina se essa ben centrata nell ingresso il sistema rallenta il moto della carrozzina e ne permette l ingresso qualora invece la carrozzina leggermente decentrata la carrozzina viene deviata in modo da evitare l o stacolo rilevato impedendone l ingresso nella porta Nelle prove effettuate si notato che risulta difficile far passare la carrozzina in porte larghe 80cm come quelle abitualmente installate nelle normali abitazioni mentre pi agevole passare in passaggi di larghezza almeno pari a 90cm Dal momen to che il passaggio attraverso porte una delle attivit fondamentali per il movimento in interni evidente che questo comportamento andr raffinato prima di poter considerare il sistema effettivamente utilizzabile in contesti reali 7 5 Guida autonoma 177 Figura 7 20 Guida semiautonoma in un percorso con ostacoli Dal punto di vista dei comportamenti il sistema realizzato fortemente espandibile sia tramite l aggiunta di nuove regole fuzzy sia tramite l inse rimento di nuovi comportamenti per gestire situazioni particolari come ad esempio i passaggi stretti Il comportamento di evitamento ostacoli rea lizzato ha dimostrato che possibile sviluppare un sistema intelligente che assista l utente nella guida della carrozzina Per quanto riguarda gli ostacoli che non possono essere rilevati necessario invece
159. ili su zone pi ostruite e celle pi grandi su zone completamente libere 3 3 4 Campi di potenziale Il metodo dei campi di potenziale prevede di assegnare al punto di desti nazione un potenziale attrattivo e agli ostacoli un potenziale repulsivo La forma del potenziale assegnato deve garantire la localit ovvero l effetto re pulsivo di un ostacolo deve esaurirsi a una certa distanza dall ostacolo stesso Anche il potenziale attrattivo gode della stessa propriet ma il suo decadi mento deve essere pi lento per garantire che anche partendo da un punto lontano nella mappa l attrazione verso il goal sia significativa La funzione potenziale complessiva terr conto di tutte le componenti repulsive e di quel la attrattiva L algoritmo che guida il movimento del robot solitamente semplice e basato su metodi matematici noti di minimizzazione come la di 36 Capitolo 3 Panoramica sulla robotica mobile scesa del gradiente Il problema principale legato all uso di metodi basati su campi potenziali dato dai possibili minimi locali che si possono incontrare lungo il percorso In queste situazioni l algoritmo di discesa del gradiente termina la sua esecuzione ma il punto raggiunto non il minimo globale posto in corrispondenza del goal Numerose soluzioni sono state proposte e sono allo studio per ovviare a questo problema 3 4 Architetture software per il controllo Il problema del controllo nel campo della robotica mo
160. informazioni visualizzate si ritenuto signifi cativo indicare in modo preciso e in tempo reale il comando prodotto dal controllore fuzzy accompagnato dalle informazioni sulla posizione e velocit della carrozzina e dalle informazioni relative all esecuzione automatica di percorsi Per realizzare questo scopo GuiExpert riceve i seguenti messaggi MSG_FROM_BRIAN che permette di conoscere l azione di controllo intra presa e MSG_FROM POSE ACTUAL POS e MSG_FROM POSE _UNKNOW ACTUAL POS per mettono di visualizzare la posizione della carrozzina quando questa disponibile e MSG FROM POSE _UNKNOW_ACTUAL SPEED e MSG_FROM_POSE_ACTUAL SPEED permettono di visualizzare la velocit della carrozzina quando questa disponibile MSG_FROM_SEQUENCER_EXECUTING_PATH permette di indicare se in cor so l esecuzione di un percorso automatico o no MSG_FROM_SEQUENCER_VIAPOINT_INFO indica le informazioni relative al via point che si sta cercando di raggiungere In Figura 6 22 visualizzata l interfaccia grafica realizzata In alto presente una zona che indica con l uso di progress bar il valore del controllo prodotto Nella parte centrale sono indicate le informazioni su posizione e velocit della carrozzina Nella parte inferiore sono presenti due campi testuali che permettono di specificare la posizione da raggiungere e due pul santi per comandare l esecuzione o l interruzione del percorso Infine sono mostra
161. interfacce grafiche personalizzate risulterebbe ulteriormente facilitata in quanto non sarebbe pi necessario nemmeno ricompilare il software di controllo ma solo quello di interfaccia Il membro PoseExpert pu essere esteso in modo da integrare informa zioni differenti per stimare meglio il moto della carrozzina Attualmente il sistema che misura la velocit della carrozzina assolutamente indipenden te dal sistema che ne stima la posizione nonostante le informazioni dei due sistemi siano entrambe convogliate all interno di PoseExpert Si potrebbe 150 Capitolo 6 Software di controllo ro implementare metodi di stima del moto e della posizione che combinano tutte le informazioni disponibili oppure si potrebbero facilmente aggiungere altri sensori e metodi di stima Come esempio dimostrativo per mostrare la semplicita di estensione del Varchitettura proposta supponiamo di disporre di un sistema di misura della velocita della carrozzina basato su una telecamera che inquadra il pa vimento e di voler integrare le informazioni da esso prodotte nel membro PoseExpert E necessario implementare un nuovo membro che chiameremo VisualOdometryExpert che rende disponibile le informazioni sulla velocita rilevata tramite un messaggio che chiameremo MSG_FROM_VISUAL_ODOMETRY E facile notare che le uniche modifiche necessarie al sistema per integrare il nuovo membro riguardano il membro PoseExpert che dovra tenere con to dei messaggi provenie
162. io di richiesta di piani 136 Capitolo 6 Software di controllo ficazione di un percorso atteso da SpikeExpert La sequenza di operazioni che deve svolgere per creare un piano la seguente 1 Attendere la comunicazione del punto di destinazione 2 Se nota la posizione in cui si trova la carrozzina richiedere al membro che si occupa dei sensori laser il profilo degli ostacoli rilevati in modo da creare gli ostacoli dinamici altrimenti attendere che la posizione sia nota per effettuare questa operazione 3 Richiedere la pianificazione a SpikeExpert dal punto in cui si trova la carrozzina al punto di goal specificato 4 Attendere la lista dei via point del piano Se non possibile generare un piano ritornare al punto 1 altrimenti iniziare la navigazione verso il primo via point Quando si raggiunge l ultimo via point terminare l esecuzione del piano Inoltre si deve considerare che il piano pu essere interrotto in qualsiasi momento riportando il sistema al punto iniziale Il membro SequencerExpert costantemente in attesa di messaggi di tipo MSG_FROM_POSE_ACTUAL_POS e MSG_FROM_POSE_UNKNOW_ACTUAL_POS grazie ai quali mantiene aggiornate delle variabili di stato che indicano la posizione attuale della carrozzina o la non disponibilt della posizione Per conoscere il punto di destinazione del piano SequncerExpert at tende un messaggio di tipo MSG_GOAL_XY che specifica la coordinata x e y della destinazione nei ca
163. io di sistema di rilevazione di dati inerziali miniaturizzato I dati che in grado di rilevare sono e l orientamento in tre dimensioni rispetto al sistema di riferimento as soluto terrestre grazie alla rilevazione dell intensit del campo magne tico e la velocit di rotazione intorno ai tre assi del sistema di riferimento solidale con il sensore rilevata con l uso di giroscopi e l accelerazione lungo i tre assi del sistema di riferimento solidale con il sensore rilevata con accelerometri 3 2 Posizionamento in ambienti indoor 29 Dimensioni 58 x 58 x 22 mm Peso 50 g Alimentazione da 4 5 a 30 V Potenza richiesta 360 mW Interfaccia RS232 o USB 512 Hz velocita e accelerazioni Frequenza rilevazioni 120 Hz orientamento assoluto Massima velocit rotazione rilevabile 300 deg s Massima accelerazione rilevabile 50 m s Massima campo magnetico rilevabile 750 mGauss Tabella 3 4 Caratteristiche tecniche del sensore XSens MTi Le dimensioni di questo sensore sono molto contenute 58 x 58 x 22 mm cos come il suo peso 50 g I dati di velocit di rotazione e accelerazione sono disponibili ad una frequenza massima di 512 Hz quelli di orientamento ad un massimo di 120 Hz In Tabella 3 4 sono riportate le caratteristiche tecniche del sensore MTi per ulteriori informazioni si rimanda a 53 e al sito del costruttore 3 2 1 Posiz
164. ionamento assoluto Un sistema di posizionamento assoluto trova applicazione sia come metodo di posizionamento sia come sistema di azzeramento e correzione di un sistema di posizionamento relativo Le modalit con cui pu essere effettuato sono le seguenti Fari attivi La posizione viene calcolata dal robot misurando le direzioni di incidenza dei segnali trasmessi da tre o pi fari I fari emettono solitamente luce o onde radio e devono essere posizionati in luoghi noti nell ambiente Landmark artificiali In luoghi noti nell ambiente vengono posizionati de gli oggetti bidimensionali o tridimensionali che sono facilmente di stinguibili con sistemi di visione artificiale Le propriet geometriche dei landmark possono essere sfruttate per calcolare la distanza da essi oppure la posizione pu essere stimata con metodi di triangolazione come nel caso dei fari attivi Il riconoscimento dei landmark e la sti ma della posizione rispetto a essi pu risultare computazionalmente oneroso Shttp www xsens com 30 Capitolo 3 Panoramica sulla robotica mobile Landmark naturali Si utilizzano dei punti salienti dell ambiente senza necessit di preparare l ambiente in cui il robot andr a operare L af fidabilit di questo metodo inferiore a quella basata sui landmark artificiali e comunque richiesta una fase di addestramento in cui ri conoscere le feature da associare ai luoghi nell ambiente Un esempio di applicazion
165. ioni con le celle adiacenti mantiene anche uno stato che pu assumere due valori libera o occupata Una cella occupata quando il suo spazio intersecato da uno o pi ostacoli La ricerca di un percorso da un punto di partenza ad 3 3 Pianificazione di percorsi 35 Figura 3 8 Scomposizione in celle quadrate ed esempio di percorso calcolato da un punto di inizio S e un punto di fine G Le celle occupate sono tratteggiate Si pu notare che la zona evidenziata in rosso presenta un possibile passaggio reale che la granularit delle celle considera invece non praticabile un punto destinazione avverr con una ricerca su grafo tra celle adiacenti libere facile immaginare che il numero delle celle influenza la rapidit di construzione della mappa e il numero di strade da esplorare nella ricerca di un percorso Pi alto il numero delle celle pi sono numerosi i controlli di intersezione con gli ostacoli da effettuare per valutare lo stato delle celle Pi sono le celle pi il numero di passaggi intermedi che un percorso considera elevato Un numero troppo elevato di celle comporta tempi di calcolo molto lunghi Un numero di celle troppo basso pu rendere non connesse due zone della mappa che in realt lo sono Figura 3 8 Per ovviare a questo problema sono state sviluppate soluzioni che utilizzano celle di diverse dimensioni a seconda della zona della mappa che si considera celle pi piccole sono ut
166. iori rispetto a quelle normalmente presenti sul mercato possibile seguire tre vie e Creare un robot mobile con un sedile che possa ospitare una persona e g V ichule Autonome pour Handicap Moteur VAHM 37 7 Mister Ed 11 e Utilizzare una carrozzina motorizzata commerciale come base e cam biare i dispositivi elettronici di controllo dei motori con un apparato 2 2 Carrozzine elettriche e robotica mobile 9 progettato ad hoc e g NavChair 28 Office wheelchair with high Maneuverability and Navigational Intelligence Omni 6 Mobility Aid for elderly and disabled people MAid 36 SENARIO 21 e Utilizzare una carrozzina motorizzata commerciale come base creando dei dispositivi che si interfacciano con i bus proprietari e g Smart Wheelchair Assistance Module SPAM 43 Hephaestus 44 Tin Man 34 Siamo 32 2 2 1 Estensione delle funzionalit delle carrozzine elettriche L aggiunta di un sedile a un robot mobile stata una delle prime strade percorse ma risulta dispendiosa e richiede un notevole sforzo per la proget tazione e realizzazione della struttura meccanica e della motorizzazione L uso di una carrozzina commerciale come base permette di mantenere tutte le funzionalit che non sono legate direttamente al movimento della carrozzina ma che la rendono differente da una sedia a motore Le car rozzine el
167. it di muoversi autonomamente La presente tesi piuttosto corposa per assolvere all esigenza di docu mentare dettagliatamente le scelte progettuali e realizzative e permettere di comprendere nei particolari il funzionamento del sistema realizzato In fatti il prototipo realizzato stato concepito in modo da poter fungere da base per successivi ampliamenti e perfezionamenti e dunque una completa documentazione delle sue caratteristiche particolarmente necessaria La struttura con cui organizzata questa tesi la seguente e Nel Capitolo 2 viene illustrata l importanza degli ausili alla mobi lit e vengono presentate le caratteristiche salienti di alcune soluzioni proposte in letteratura per estendere la funzionalit delle carrozzine elettriche Nel Capitolo 3 viene presentata una panoramica riguardante i sensori e le tecniche della robotica mobile che meglio si adattano all estensione delle funzionalita di una carrozzina elettrica Nel Capitolo 4 viene descritto il progetto della la carrozzina elettrica oggetto di questo lavoro identificando gli obiettivi da raggiungere e le componenti utilizzate per il loro perseguimento Nel Capitolo 5 viene presentato il sistema di localizzazione per ambien ti indoor basato su tecniche di visione artificiale sviluppato in questa tesi Nel Capitolo 6 viene illustrata la struttura del software di controllo realizzato per la carrozzina elettrica specificandone il comportamento e
168. it estese realizzata In una prima fase vengono descritte le scelte progettuali effettuate successivamente vengo no presentati i moduli che costituiscono l applicazione e che realizzano il controllo della carrozzina 6 1 Compiti del software di controllo Il software di controllo costituisce una parte molto importante di un robot mobile Infatti le funzionalit che il robot in grado di offrire non dipendono solo dalla sensoristica utilizzata e dagli attuatori ma soprattuto dal modo in cui i dati vengono raccolti ed elaborati al fine di prendere decisioni In una carrozzina elettrica dalle funzionalit aumentate il software di controllo interagisce oltre che con sensori e attuatori anche con l utente Infatti il software di controllo deve essere in grado di interpretare la volont dell utente e gestire il moto della carrozzina in modo da garantire la sicurezza dell utente che a bordo di essa Nella Sezione 4 5 si analizzato brevemente il software di controllo per la carrozzina elettrica e si individuata la necessit di sviluppare un ap plicazione multiagente in cui ogni agente avesse la possibilit di scambiare informazioni con gli altri presenti nel sistema Si scelto di affidare la gestio ne dell esecuzione degli agenti e la comunicazione a un framework software Il framework scelto DCDT ed presentato nella Sezione 4 5 1 Inoltre si identificata l architettura di controllo chiamata
169. iti dell errore E necessario quindi introdurre dei sistemi di azzeramento della posizione 28 Capitolo 3 Panoramica sulla robotica mobile Figura 3 4 Il sensore inerziale XSens MTi ovvero deve essere periodicamente disponibile un informazione sulla posizio ne assoluta del robot mobile che serva da nuovo punto di partenza per il sistema di posizionamento relativo Tipicamente i sistemi che si basano su informazioni odometriche otten gono le informazioni sulla rotazione delle ruote o sull angolo di sterzata con l uso di encoders Il costo di questi dispositivi solitamente basso In al ternativa si possono utilizzare i sistemi inerziali principalmente basati su giroscopi e accelerometri Misurando le velocita di rotazione attorno agli as sie le accelerazioni lungo gli assi di un sistema di riferimento solidale con tali dispositivi si pu risalire alla posizione e alla velocit tramite integrazione nel tempo I costi sono pi elevati rispetto ai sistemi di odometria basa ti su encoder ma un sensore inerziale autocontenuto ovvero pu essere collocato su un qualunque robot senza modifiche alla struttura dei moto ri o delle ruote come invece richiesto dai sistemi odometrici tradizionali Per una panoramica sui principi di funzionamento di encoders giroscopi e accelerometri e sulle tecnologie costruttive si rimanda a 5 XSens MTi Il sensore MTi Figura 3 4 prodotto da XSens un esemp
170. l architettura Nel Capitolo 7 sono analizzati e commentati i risultati sprimentali ottenuti sia dal punto di vista della realizzazione del prototipo che dal punto di vista del comportamento del controllore nello svolgere i compiti di assistenza alla guida e di guida autonoma tracciando anche alcune possibili linee di estensione del sistema Nel Capitolo 8 sono tracciate le conclusioni del lavoro svolto e ne ven gono proposte le linee di sviluppo sia in termini di miglioramento delle funzionalit gi realizzate che di identificazione di nuove funzionalit aggiuntive Capitolo 1 Introduzione Capitolo 2 Ausili alla mobilita e tecnologia In questo capitolo si affronta il problema degli ausili alla mobilita necessari ad alcune categorie di persone Vengono presentate le principali carroz zine elettriche intelligenti realizzate in ambito di ricerca le linee in cui le funzionalit di questi ausili sono state estese e le loro caratteristiche salienti 2 1 Ausili alla mobilit Per gli esseri umani la possibilit di muoversi autonomamente e in modo agevole essenziale per il conseguimento di uno stato di benessere fisico e psicologico come evidenziato da numerosi studi 42 Ad esempio nello sviluppo cognitivo dei bambini il movimento favorisce l apprendimento dei concetti di relazione spaziale senza i quali i normali processi di appren dimento e sviluppo delle facolt intellettive possono risultare rallentati e
171. l asse da cui nota la massa mobile ricava l accelerazione mentre le velocit di rotazione intorno agli assi x e y sono sempre nulle in quanto la carrozzina mantiene sempre fisso il suo orientamento rispetto al terreno supposto piano ed orizzontale I dati del magnetometro possono risultare utili per semplificare il posizionamento del sensore permettendo di correggere i valori di velocit e accelerazione in base all orientamento relativo del sensore rispetto al sistema di riferimento terrestre Sarebbe possibile ad esempio eliminare eventuali componenti di accelerazione dovute alla gravit terrestre rilevate erroneamente a causa di un non perfetto posizionamento del sensore Lo studio di sistemi di correzione basati su questo principio ri chiede per una lunga fase di analisi dei dati e caratterizzazione del sensore e richiederebbe di utilizzare tutti i dati di accelerazione e velocit disponi bili La volont di rendere il sistema il pi possibile semplice ha indotto perci a non considerare i dati di orientamento assoluti forniti dal sensore Individuati come dati strettamente necessari la velocit di rotazione intorno all asse z e le accelerazioni lungo x e y sar possibile una volta dimostrata la validit del sistema realizzato cercare sul mercato un sensore che offra solo i dati necessari con un risparmio economico notevole 56 Capitolo 4 Progetto di una carrozzina robotica Figura 4 4 La telecamera UniBrain Fi
172. l inversione della matrice sono state valutate le seguenti due ipotesi e Problemi di approssimazione numerica nell inversione della relazione e Errori nei valori della matrice da invertire La prima ipotesi stata scartata in quanto l operazione di inversione della matrice non si effettua con metodi generali ma sfruttando la particolare 98 Capitolo 5 Localizzazione con landmark artificiali T T T Angolo Nord Ovest e Angolo Sud Ovest 600 Angolo SudEst e Angolo Nord Est e Centrale e 400 H 200 F 4 E gt 0 Fi 7 200 f a 400 a 4 600 L L 1 500 0 500 x mm Figura 5 14 Posizione x e y della telecamera nel sistema di riferimento marker con il marker posto ai 4 angoli e in posizione centrale Angolo Nord Ovest Angolo Sud Ovest Angolo Sud Est Angolo Nord Est Centrale 1540 1520 1500 1480 z mm 1460 1440 1420 1400 000 Figura 5 15 Posizione x y e z della telecamera nel sistema di riferimento marker con il marker posto nei 4 angoli e in posizione centrale 5 5 Realizzazione del sistema di localizzazione 99 600 T T T T T 400 J 200 4 E 7 E 0 gt AN YW aN DANA Y ZAN WN 3 S MII LOT OS A AFIONA LISS 400 n TE x 4 600 600 400 200 0 200 400 600 Figura 5 16 Posizione x e y della telecamera nel sistema di riferimento marker in un percorso rettangolare 1800 1700 1600 z mm 1500
173. l computer con i dati trasmessi dal circuito Si noti che in base alle specifiche individuate per il cambio della modalit di funzionamento il circuito ignora tutte le trame che sono trasmesse dal computer quando in modalit manuale Se la modalit di funzionamento automatica l invio da parte del computer di una trama che specifica il funzionamento manuale interpretata come la volont di passare al funzionamento manuale Se la modalit manuale il passaggio alla modalit automatica possibile solo su richiesta esplicita dell utente Per ulteriori informazioni sul funzionamento del circuito e sulle modifiche da apportare al joystick della carrozzina si rimanda a 10 e 9 4 4 Progetto di una struttura di supporto Tutti i componenti necessari alla realizzazione di una carrozzina elettrica dalle funzionalit estese individuati nella Sezione 4 2 devono essere collocati a bordo della carrozzina stessa Montare singolarmente ogni singolo com ponente sulla carrozzina scomodo e qualora fosse necessario riportare la carrozzina in condizioni originali o spostare i componenti su una nuova car rozzina sarebbe necessario scollegare ogni singolo componente e smontarlo molto pi comodo progettare una struttura di supporto che sia applicabi le alla carrozzina in modo semplice e con poche operazioni Tale struttura deve essere progettata in funzione della forma e delle possibilit di fissaggio off
174. l joypad sull asse avanti indietro compresa tra 1 e 1 e joypadrzlx indica la posizione della leva del joypad sull asse destra sinsitra compresa tra 1 e 1 Il messaggio MSG_FROM_JOYPAD_INFO contiene informazioni aggiuntive sul lo stato del joypad che non sono necessarie per il controllo della carrozzina Le coppie nome valore sono le seguenti e scalefactor indica a quanto impostato il valore massimo del fondo scala per il joypad Come introdotto nella Sezione 4 2 6 possibile limitare il valore del fondo scala del comando del joypad utilizzando i pulsanti numerati da 1 a 4 con corrispondenti valori di fondo scala 0 4 0 6 0 8 e 1 Si noti che questa informazione non necessaria per controllare la carrozzina Infatti qualora si stia utilizzando un valore di fondo scala diverso da 1 il membro stesso che provvede a effettuare la proporzione e inviare nel messaggio MSG_FROM_JOYPAD_BRIEF i valori 120 Capitolo 6 Software di controllo corretti Ad esempio considerando valore di fondo scala 0 4 se la leva del joypad in posizione avanti tutta con corrispondente valore pari a 1 joypadfwrw assume valore 0 4 se la leva fosse esattamente a meta tra la posizione di riposo e la posizione avanti tutta con valore teorico 0 5 il valore di joypadfwrw 0 2 e joychannel indica quale dei tre controlli disponibili sul joypad si sta utilizzando per comandare la carrozzina 0 indica la leva analogica d
175. l rumore evidente nel percorso sviluppato che per non hanno comportato problemi nell uso del sistema di localizza zione per la guida automatica come sar mostrato nelle sezioni seguenti Inoltre si pu notare che in alcuni punti la traccia del percorso rilevato non continua ovvero il sistema di localizzazione non stato in grado di loca lizzare la carrozzina Questo dovuto al movimento eccessivamente rapido della carrozzina che ha prodotto immagini mosse in cui non erano rilevabili i 7 4 Guida semiautonoma 165 6000 4 4000 4 2000 si bis l J 2000 4000 2000 0 2000 4000 6000 8000 Figura 7 9 Percorso registrato con il sistema di localizzazione marker presenti sul soffitto Questo problema non stato considerato critico in quanto il sistema di localizzazione di supporto alla guida autonoma che sviluppa velocit di movimento basse soprattutto in fase di sviluppo del sistema 7 4 Guida semiautonoma La guida semiautonoma della carrozzina permette di far muovere la carroz zina seguendo fedelmente il comando imposto dall utente quando non si in presenza di ostacoli intervenendo solo in situazioni di potenziale perico lo L obiettivo di questo lavoro di sviluppare semplici comportamenti di evitamento ostacoli allo scopo di dimostrare che la strada intrapresa per sviluppare una carrozzina dalle funzionalit estese ha delle potenzialit da sfrutta
176. la sostituzione del mem bro C con un nuovo membro D che produce gli stessi tipi di messaggi del tutto trasparente al sistema L uso di DCDT permette di creare facilmente un applicazione multiagen te e semplifica la gestione dello scambio di informazioni tra i moduli software da sviluppare Capitolo 5 Localizzazione con landmark artificiali In questo capitolo si introduce un sistema di localizzazione per ambienti indoor basato su telecamere e landmark artificiali Sono illustrati sia gli aspetti legati alla progettazione logica che all effettiva realizzazione e imple mentazione del sistema Le problematiche riscontrate nello sviluppo hanno comportato una serie di modifiche al progetto iniziale Tali modifiche sono presentate nell ordine in cui sono state affrontate 5 1 Approcci alla localizzazione indoor Un sistema di localizzazione un meccanismo che rende disponibile la posi zione assoluta di un ente fisico e g un robot una persona etc in modo accurato e in tempo reale Altre propriet desiderabili sono la facilit di in stallazione e d uso oltre alla scalabilit su vaste zone Un esempio di sistema di localizzazione disponibile su scala mondiale il GPS ma il suo segnale non in genere rilevabile all interno degli edifici quindi tale sistema non adatto alla localizzazione indoor Molti sistemi di posizionamento indoor sono stati sviluppati utilizzando trasmettitori e ricevitori di luce infrarossa
177. le informazioni di log deve essere gestito in modo da garantire la mutua esclusione ovvero prima di servire una nuova richiesta di scrittura deve avere terminato la scrittura della precedente Il metodo di scrittura accetta come dato di input una stringa di testo a cui viene anteposto il timestamp dell istante in cui la scrittura viene effettuata e concatenato un ritorno a capo Per convenzione si stabilito che ogni stringa scritta sul file di log non deve contenere ritorni a capo in modo che il file di log sia costituito da una sola riga per ogni evento Uno svantaggio di questo me todo di effettuare logging dato dal fatto che qualora si debba dividere l esecuzione del software di controllo su pi macchine risulterebbe impossi bile effettuare un unico logging Supponendo per di utilizzare un sistema di sincronizzazione degli orologi di sistema dei computer su cui le applica zioni sono in esecuzione sarebbe possibile effettuare separatamente il log e successivamente unire le diverse parti basandosi sui timestamp registrati all interno dei singoli log Con un file di log di questo tipo molto semplice estrarre gli istanti di tempo in cui il membro BrianExpert ha iniziato la sua attivit e crea re un grafico che monitora il periodo di tempo di esecuzione del membro stesso ottenuto come sottrazione tra un timestamp e il precedente Ad esempio il grafico dell attivazione del membro BrianExpert mostrato in 6 2 Componenti so
178. lettro niche presenti sulla carrozzina sono parte della linea DX System prodotta dalla Dynamic Controls 4 2 Sensori e componentistica hardware Una volta stabilite le funzionalit di cui si vuole dotare la carrozzina necessario individuare quali sono i sensori necessari e la componentistica hardware da utilizzare I criteri che guidano la scelta dei sensori e della componentistica hardware sono riassumibili in http www ottobock com http www dynamiccontrols com 4 2 Sensori e componentistica hardware 53 Figura 4 2 Lo scanner laser Hokuyo URG 04LX Economicit relativamente alla classe di dispositivi a cui appartengono Prestazioni valutate con la cifra di merito appropriata Rapporto qualit prezzo che coinvolge non solo le prestazioni del dispo sitivo ma anche qualit costruttiva affidabilit garanzia e supporto Minima invasivit in quanto i dispositivi devono disturbare il meno pos sibile l utente che si trova sulla carrozzina Questo criterio si pu tradurre in svariati modi in base all ambito di applicazione se si con sidera un dispositivo posto nelle vicinanze della postazione di guida possibile rendere minima la sua invasivit miniaturizzandolo Se si considera un dispositivo le cui dimensioni non arrecano disturbi al l utente si valutano fattori come la rumorosit o la produzione di vibrazioni Consumo elettrico per garantire un autonomia elevata alla carrozzina elettrica So
179. lo solidale con la telecamera infatti sufficiente rilevare erroneamente anche di pochi pixel uno dei quattro angoli del marker per 5 5 Realizzazione del sistema di localizzazione 91 introdurre un errore sull orientamento dei marker evidente I dati valutati sono la posizione e la rotazione del marker rispetto al sistema di riferimento della telecamera e sono forniti dalla libreria di gestione dei fiducial marker in una matrice omogenea di rototraslazione che ha la seguente forma Uy v wy ty C ug VI W2 ty Ty uz U3 w3 tz 0 0 0 1 5 8 La posizione del marker in coordinate telecamera espressa direttamente dall ultima colonna della matrice L estrazione degli angoli di rotazione a intorno all asse z intorno a y e y intorno a x espressi con il sistema areonautico di yaw pitch e roll si ricava dalle seguenti relazioni U cosa cos 8 uz sina cos 3 ug sin 6 v cosa sin p sin y sina cos y vg sin a sin p sin y cosa cos y 5 9 v3 cos sin y w cosa sin p cos y sin a sin y w sina sin cosy cosa sin y w3 cos 8 cos y Il marker stato posizionato come visibile in Figura 5 7 e sono sta te analizzate 350 immagini mantenendo il sistema nella stessa condizione La posizione media del marker rispetto al sistema di riferimento della te lecamera risultata x 9 23mm y 8 96mm z 1456 87mm La de viazione standard che caratterizza questi valori medi
180. lto di pi di quello che vi do Grazie a tutti gli educatori dei gruppi di catechismo con cui ho collaborato e col III laboro ognuno di voi per me esempio e occasione di confronto Grazie ai componenti della Banda perch la musica un collante gioioso che esprime molte pi emozioni delle parole Grazie ai compagni di corso di questi ultimi anni alcune strade si sono divise ma la serenit con cui ci siamo aiutati e confrontati mi d esempio per la vita Grazie ai compagni di viaggio negli interminabili tragitti delle Ferrovie Nord bello sapere di trovare sempre o quasi sempre qualcuno con cui passare il tempo Grazie a tutti gli in contri casuali della vita di tutti i giorni forse cos casuali in fondo non sono grazie a tutte le persone studenti dottorandi professori che sono passate dall AirLab in questi mesi contribuendo a creare un clima caloroso ed acco gliente al punto che qualcuno lo definisce il Centro Sociale AirLab in cui facile sentirsi a proprio agio trovare collaborazione ridere e scherzare senza per perdere di vista gli obiettivi professionali che ognuno ha Si potrebbero scrivere tante altre cose ricordare episodi e avvenimenti ridere e scherzare sui fatti accaduti ma forse meglio farlo di persona dove oltre che con le parole si pu comunicare con gli sguardi con i gesti con le emozioni e i sentimenti Per questo lascio ora lo spazio alla parte tecnica di questo lav
181. mazioni odometriche e utilizzando periodicamente il sistema assoluto per azzerare gli errori Il membro PoseExpert con i messaggi che produce mostrato in Figu ra 6 13 6 2 6 Rilevamento posizione in ambienti indoor Nel Capitolo 5 si introdotto un sistema di localizzazione che permette di conoscere la posizione di un robot mobile equipaggiato con una telecamera rivolta verso il soffitto su cui sono applicati dei fiducial marker Il mem 6 2 Componenti software 133 MSG_FROM_POSE_ACTUAL_SPEED MSG_FROM_POSE_UNKNOW_ACTUAL_SPEED MSG_FROM_POSE_ACTUAL_POS MSG_FROM_POSE_UNKNOW_ACTUAL_POS PoseExpert Figura 6 13 Struttura completa del membro PoseExpert bro che si occupa di calcolare la posizione della carrozzina nel sistema di riferimento assoluto chiamato VisionExpert con ovvio riferimento al suo compito di analizzare delle immagini tramite tecniche di visione artificiale Il compito di questo membro di acquisire periodicamente un fotogramma dalla telecamera e calcolare quando possibile la posizione della carrozzina rispetto al sistema di riferimento assoluto Quando la posizione della car rozzina disponibile il membro VisionExpert invia un messaggio di tipo MSG_FROM_VISION POS contenente le seguenti informazioni e marker_id indica il numero del marker individuato nell immagine e time_stamp_sec e time_stamp_usec rappresentano l istante di tempo ri spetto all avvio del membro VisionExpert in
182. mento autonomo della carrozzina il sistema di ricono scimento ed evitamento degli ostacoli rimane attivo esso collabora con il sistema di guida autonoma per garantire non solo il raggiungimento dell o biettivo ma anche una navigazione sicura in ambiente Il prototipo realizzato ha mostrato che la realizzazione di una carrozzina elettrica dotata di funzionalit avanzate e intelligenti un obiettivo non lontano e che le scelte progettuali ed implementative effettuate sono valide nella sua versione attuale suscettibile di miglioramenti e gi predisposta ad essi la carrozzina infatti in grado di evitare collisioni di assistere l utente nell aggiramento degli ostacoli e di compiere semplici percorsi con movimenti autonomi in ambienti controllati Grazie al presente lavoro si sono gettate solide basi di sviluppo sulle quali possibile intraprendere azioni di affinamento ed estensione sia con siderando la possibilit di aggiungere ulteriori sensori sia perfezionando le funzionalit gi presenti al fine di creare un prototipo sufficientemente evoluto da poter essere sottoposto al giudizio di utenti disabili in ambienti reali Altri sviluppi potranno riguardare l integrazione di sistemi di coman do basati sul riconoscimento vocale sul tracciamento della motilit oculare o su interfacce Brain Computer Interface BCI che permetterebbero a un numero ancora maggiore di utenti disabili di aumentare le loro capacit e possibil
183. mini quindi necessario verificare che il sistema di localizzazione sia in grado di dare risultati buoni anche in questa particolare condizione che si verificata Tale verifica i cui risultati sono 7 3 Localizzazione basata su marker 163 Sistema di riferimento assoluto W Figura 7 6 Albero di copertura di peso massimo estratto delle relazioni tra i marker 7 7 r 7 7 7 7 1000 8 4 500 4 OF 4 4 0 500 4 8 1000 12 4 1500 J 2000 3 4 5 2500 uil J 6 3000 A A A A 1000 500 0 500 1000 1500 2000 2500 3000 3500 x mm Figura 7 7 Posizione assoluta dei marker riportati pi avanti in questa sezione ha mostrato che la configurazione otte nuta per le relazioni tra i marker comunque efficiente Se la verifica avesse mostrato problemi evidenti sarebbe stato necessario rieseguire la procedu ra di calibrazione del sistema registrando altre immagini da aggiungere a quelle analizzate al fine di ottenere una diversa configurazione del grafo di partenza Alla fine del processo di calibrazione del sistema di localizzazione si provveduto a specificare manualmente la mappa dell ambiente in cui il si stema stato installato Le misure sono state effettuate con delle semplici rulline metriche e si ritenuto significativo inserire oltre ai muri perimetrali solo gli oggetti statici che meno probabilmente cambieranno posizione nel 164 Capitolo 7 Risultati sperimentali
184. mpi goalx e goal_y Se il punto da raggiungere e la posizione attuale sono noti SequencerExpert invia un messaggio di tipo MSG_FROM_SEQUENCER_ASK_FOR_SEGMENTS con contenuto vuoto che richiede ai sensori laser di inviare il profilo degli ostacoli rilevati Per come finora stato presentato il membro HokuyoExpert questa funzionalit non stata introdotta l estensione che permette di supportarla presentata in seguito per ora sufficiente considerare che ognuno dei membri di gestione dei sen sori laser risponde con un messaggio di tipo MSG_FROM_HOKUYO_POINT_LIST necessario attendere che entrambi i membri che si occupano della gestio ne delle informazioni degli scanner laser inviino una sequenza di punti che descrive il profilo degli ostacoli in coordinate cartesiane riferite al sensore laser stesso Per integrare nella mappa le informazioni sugli ostacoli dinamici rileva ti necessario trasformare i punti che li descrivono in modo da riferirli al sistema di riferimento assoluto Sar necessario quindi introdurre una roto traslazione che porta dal sistema di riferimento centrato sul sensore laser al 6 2 Componenti software 137 Figura 6 15 Sistema di rappresentazione delle informazioni che guidano il raggiungi mento di un via point dove con p si indica la distanza dal via point e con l angolo tra la direzione attuale e la traiettoria sistema di riferimento solidale con la carrozzina e successivamente nota la p
185. na stessa immagine possibile ottenere dal sistema di fiducial marker sia la matrice a sia la matrice Ti La relazione tra il marker i e il marker j quindi data da Mi Supponendo di conoscere un unica relazione tra il sistema di riferimento assoluto e il sistema solidale con il marker 7 possibile calcolare la relazione tra il sistema di riferimento assoluto e un qualunque marker j che possa essere inquadrato insieme al marker 7 tramite la seguente equazione Mi TM TM Tm 5 6 5 4 2 Relazioni indirette Per estendere la zona coperta dal sistema di localizzazione inevitabile che si verifichi la condizione in cui alcuni marker non possono essere inquadra ti insieme al marker di base i per possibile posizionare tali marker in modo che essi possano essere inquadrati almeno insieme ad un altro mar ker e ricorsivamente costruire le relazioni che portano fino al marker base Supponendo di disporre di un immagine in cui sono visibili il marker j e il marker k di una seconda immagine contenente il marker e il marker j e della relazione TH possibile seguire il seguente procedimento 1 Calcolare Lo con l Equazione 5 5 dalla prima immagine 2 Calcolare Tur con l Equazione 5 5 dalla seconda immagine 3 Calcolare Ti con l Equazione 5 6 4 Calcolare Tit con l Equazione 5 6 come Mj Tu TM Tm 5 7 86 Capitolo 5 Localizzazione con landmark artifici
186. nazione del percorso pianificato verr inviato un messaggio MSG_FROM SEQUENCER EXECUTING_ PATH con valore di erecuting_path 0 e il membro SequencerExpert si riporter nella condizione iniziale in cui attende nuove richieste di pianificazione In qualsiasi momento dell esecuzione del membro SequenceExpert se vie ne ricevuto un messaggio di tipo MSG_STOP_PLAN_EXECUTION il piano corrente viene abbandonato e l esecuzione di SequenceExpert viene riportata alla con dizione iniziale Se invece viene ricevuto un messaggio di tipo MSG_GOAL_XY ovvero viene richiesta una nuova pianificazione con le nuove specifiche del punto di destinazione SequencerExpert interrompe la sua esecuzione per servire la nuova richiesta che ha l effetto di cancellare quella precedente previsto un altro messaggio di richiesta di pianificazione ed esecuzione del percorso che SequenceExpert in grado di analizzare il messaggio MSG_GO_TO_GOAL_ COMMAND e richiede di effettuare una nuova pianificazione mantenendo il punto di destinazione precedentemente impostato I messaggi MSG_STOP_PLAN_EXECUTION MSG_GO_TO_GOAL_COMMAND e MSG_ GOAL_XY sono generati dal membro che si occupa di gestire l interazione con l utente tramite l interfaccia grafica che sar presentata nella Sezione Guida automatica con regole fuzzy Il comportamento FollowViaPoint presentato estendibile utilizzando le informazioni gi note al controllore fuzzy come ad esempio la velocit
187. ne 3 1 sono stati introdotti i principali sensori di misura della distanza e le caratteristiche salienti Al fine di ottenere una scansione il pi possibile completa dell ambiente che circonda la carrozzina in movimento e degli ostacoli presenti si scelto di utilizzare due scanner laser Hokuyo URG 04LX Figura 4 2 che permettono un range di scansione planare di 240 con risoluzione di 0 36 e distanza massima rilevabile di 5 6m Le caratteristiche di questo sensore che maggiormente hanno influito sulla sua scelta sono il prezzo contenuto rispetto agli altri sensori sul mercato le dimensioni e il peso di gran lunga inferiori a quelle dei concorrenti e il basso consumo di corrente Il collegamento degli scanner laser al computer avviene tramite l interfaccia USB e l alimentazione richiesta dai sensori di 5V Per ulteriori informazioni tecniche sullo scanner laser URG 04LX e su altri modelli presenti in commercio si rimanda alla Sezione 3 1 3 4 2 2 Sensori inerziali e giroscopi La volont di estendere le funzionalit della carrozzina elettrica intervenen do nel modo meno invasivo possibile sulle componenti della carrozzina stessa ha portato a non considerare la progettazione di un sistema di odometria Infatti l installazione di encoder sulle ruote o sui motori comporta modifiche sostanziali alla struttura della carrozzina legando strettamente il progetto a un particolare modello di carrozzina elettrica I
188. nefici degli ausili alla mobilit non per in grado di utilizzare al meglio le normali car rozzine presenti in commercio Possiamo ad esempio individuare in questa categoria spastici distonici e parkinsoniani e in generale le persone affette da disturbi che alterano la capacit di compiere movimenti in modo accurato o che causano movimenti involontari Inoltre risulta rischioso affidare vei coli semoventi a ipovedenti e a coloro che oltre a problemi fisici presentano deficit mentali Al fine di aumentare il grado di autonomia di queste persone alleggeren do inoltre il compito di chi li assiste fin dai primi anni 80 sono state studia te in ambito accademico numerose soluzioni per approntare delle carrozzine con pi funzionalit rispetto a quelle normalmente presenti sul mercato Tali funzionalit non sono da considerarsi migliorative in senso assoluto ma solo in relazione alla particolare categoria di persone che abbiamo considerato Per le persone che riescono agevolmente a utilizzare in sicurezza le normali carrozzine elettriche le funzionalit aggiuntive possono risultare oltre che superflue anche scomode 2 2 Carrozzine elettriche e robotica mobile Nel corso degli anni sono state progettate e realizzate numerose carrozzine elettriche con funzionalit estese Le modifiche sono state apportate in di verse direzioni con diversi scopi e con funzionalit offerte differenti Nel pro gettare carrozzine con potenzialit super
189. nenti fisici e g sensori circuiti di interfaccia telecamere che si vogliono aggiungere alla carrozzina Tale struttura deve intralciare il meno possibile l accesso e l uso della carrozzina da parte dell utente per mettendo per una certa flessibilit nel posizionamento e nel montaggio dei componenti L aggiunta di dispositivi inizialmente non previsti deve essere agevole e deve comportare poche modifiche alla struttura complessiva Per realizzare funzionalit di guida assistita e autonoma e rendere age vole l introduzione di dispositivi di comando differenti necessario utilizzare un architettura software di controllo che garantisca robustezza in situazioni critiche e modularit nell inserimento di nuove componenti La criticit data dall incertezza delle situazioni e dall imprecisione delle rilevazioni sen soriali Inoltre un sistema robusto deve essere in grado di non compromettere le funzionalit del controllo anche in presenza di malfunzionamenti o erro ri La modularit dell architettura quindi fondamentale per lo sviluppo di funzionalit complesse in quanto permette di implementare distintamente funzionalit semplici e lasciare che sia l interazione tra di esse a sviluppare comportamenti complessi Ad esempio realizzando un modulo che gestisce Vevitamento ostacoli indipendentemente dal modulo che si interfaccia con il dispositivo di comando possibile aggiungere nuovi dispositivi di coman do in
190. ni e sviluppi futuri che l utente possa incorrere in situazioni pericolose come le collisioni con ostacoli e allo stesso tempo aiutano la guida assistendo l utente in mano vre critiche quali l evitamento ostacoli Un ultima funzionalit sviluppata riguarda il movimento autonomo della carrozzina coadiuvato dalla presenza di un sistema di localizzazione e da un pianificatore di percorsi Lo sviluppo di una carrozzina autonoma d ausilio ai disabili motori non pu considerarsi concluso con il presente lavoro Infatti il sistema presenta notevoli prospettive di sviluppo sia come nuove funzionalit da aggiungere sia come miglioramento di ci che con questo lavoro stato realizzato 8 2 Sensori utilizzati Analizzando il comportamento dei sensori utilizzati ci si resi conto di alcune caratteristiche che possono essere ricercate per migliorare il comportamento della carrozzina e se possibile ridurre ulteriormente i costi di realizzazione Gli scanner laser utilizzati per il rilevamento degli ostacoli offrono mi sure molto precise delle distanze degli oggetti dell ambiente che li circonda e sono in grado di operare senza vistosi problemi in svariate condizioni Ad esempio anche le superfici che assorbono maggiormente la luce ovvero quelle di colore nero non creano particolari problemi di misura Infatti le distanze rilevate possono risultare sovrastimate o sottostimate a causa delle delle caratteristiche della superficie in
191. no critico dell applicazione finora presentata La sua scarsa importanza dovuta al fatto che l obiettivo di questo lavoro non sviluppare un applicazione completa in tutte le sue parti ma solo di creare la base software di controllo della carrozzina elettrica Uno studio approfondito dell interfaccia grafica comporta la conoscenza precisa del tipo di utente che deve utilizzarla in quanto deve garantire accessibilti anche a coloro che hanno pi difficolt di movimento e coordinazione In questo momento l interfaccia grafica risulta utile come strumento di debug e controllo on line dell esecuzione del software di controllo La realizzazione dell interfaccia grafica affidata al membro GuiExpert Come funzioni fondamentali necessarie al funzionamento del sistema pro posto essa deve essere in grado di produrre i messaggi di comando per l e secuzione automatica dei percorsi ovvero deve produrre i messaggi di tipo MSG_GOAL_XY e MSG_STOP_PLAN EXECUTION Per produrre i messaggi di spe cifica del goal si previsto di utilizzare due campi testuali in cui specificare le coordinate del punto da raggiungere L invio del messaggio effettuato alla pressione di un bottone Tramite un altro bottone possibile invece inviare il messaggio di interruzione dell esecuzione del piano Non previsto attualmente alcun modo per inviare il messaggio MSG_GO_TO_GOAL_COMMAND 6 2 Componenti software 147 Dal punto di vista delle
192. no essere oscurati dalla presenza di persone od oggetti nell ambiente La configurazione pi vantaggiosa la terza in cui si usano i marker sul soffitto garantendo la possibilit di coprire zone ampie e riducendo la probabilit delle occlusioni In conclusione si scelto di utilizzare una telecamera rivolta verso l alto e di posizionare i marker sul soffitto Il sistema che si va a sviluppare non per rigido e permette di posizionare i marker anche su soffitti a pi livelli Inoltre comunque possibile posizionare marker sulle pareti verticali a patto che siano sufficientemente elevati da essere inquadrati dalla telecamera 5 5 3 Prove effettuate Per poter utilizzare ARToolKitPlus stato necessario calibrare la teleca mera Questa operazione stata effettuata utilizzando Camera Calibration Toolbox for Matlab che permette di stimare sia la matrice fondamentale della telecamera sia i parametri di correzione della distorsione radiale del l ottica Per valutare le prestazioni di ARToolKitPlus stata utilizzata una struttura che mantentiene la telecamera rivolta verso il terreno Figura 5 6 Il marker stato stampato su un foglio di carta comune Spostando il mar ker sul pavimento si simula la configurazione reale con marker sul soffitto e telecamera mobile semplificando per la realizzazione delle prove Il marker utilizzato quadrato con lato di 160mm Marker pi piccoli risultano difficil mente vi
193. no montarli con la base rivolta verso l alto Montando i laser in prossimit delle ginocchia dell utente possibile ga rantire che la misura effettuata con i laser non sar disturbata dalla presenza dell utente stesso e della struttura della carrozzina Considerando che il ran 70 Capitolo 4 Progetto di una carrozzina robotica Figura 4 11 Confronto tra le zona coperta dalla scansione dei sensori laser Hokuyo URG 04LX in due configurazioni differenti ge angolare di scansione di 240 si preferito ruotare i sensori in modo da evitare di misurare inutilmente distanze in zone che potrebbero essere ostruite dalla presenza dell utente o dalla struttura delle carrozzina e allo stesso tempo garantire di coprire il pi possibile anche le zone laterali La distanza tra i laser imposta dalla larghezza della carrozzina nella zona in cui i laser sono posizionati ed pari a circa 550mm Un confronto tra la zona di scansione ottenuta utilizzando i sensori con lo zero rivolto in di rezione frontale rispetto alla carrozzina e utilizzando i laser ruotati di 45 e 45 mostrato in Figura 4 11 I vantaggi dati dal posizionamento dei laser ruotati non riguardano solo la maggiore zona di copertura ma anche la sovrapposizione della zona di scansione centrale che permette qualora un laser fallisca una scansione di avere una sicurezza data dalla presenza dell altro laser evidente che la zona retrostante alla c
194. no preferibili dispositivi a basso consumo ma qualora fos se necessario utilizzare dispositivi che richiedono alimentazione elet trica tale da ridurre in modo drastico l autonomia della carrozzina si considerer la possibilit di installare delle batterie supplementari Facilit d implementazione in quanto preferibile utilizzare dispositivi con interfacce di collegamento e di alimentazione standard rispetto a sistemi che richiedono un elevato grado di conoscenza o particolari accorgimenti tecnici per essere interfacciati La scelta dei sensori e dei componenti da utilizzare legata agli obiettivi prefissati Per realizzare un sistema che assista l utente nella guida per mettendo di evitare collisioni e ostacoli indispensabile avere dei sensori di misura della distanza Al fine di dotare la carrozzina di autonomia 54 Capitolo 4 Progetto di una carrozzina robotica necessario un sistema di localizzazione che permetta di conoscere in tempo reale la posizione della carrozzina all interno di una mappa L elaborazio ne dei dati sensoriali affidata a un calcolatore che dovr garantire un buon compromesso tra prestazioni consumo di corrente e ingombro Per permettere l interazione dell utente con il software di controllo necessario disporre di periferiche di input output che non sono necessariamente quelle normalmente utilizzate e g tastiera mouse etc 4 2 1 Sensori di distanza Nella Sezio
195. nte a bordo della carrozzina il progetto del circuito di interfaccia tra il sistema di controllo della carrozzina e il computer e le caratteristiche richieste al software di controllo 4 1 Analisi dei requisiti Lo scopo del presente lavoro progettare e realizzare una carrozzina dalle funzionalita estese rispetto a quelle normalmente presenti in commercio La carrozzina non da realizzare ex novo ma a partire da un modello com merciale a cui apportare modifiche e aggiunte Le funzionalita che si ritiene utile sviluppare per favorire l uso delle carrozzine elettriche da parte di un maggior numero di utenti sono e Guida con diversi dispositivi di comando e Guida assistita e Movimento autonomo L introduzione di nuovi dispositivi di comando facilita la guida della car rozzina da parte di persone che non sono in grado di utilizzare agevolmente il comune joystick Uno degli obiettivi di questo lavoro quello di progettare 50 Capitolo 4 Progetto di una carrozzina robotica un interfaccia standard che permetta l introduzione di nuovi dispositivi di comando in modo semplice e rapido La presenza di pi dispositivi di co mando rende necessario lo sviluppo di un meccanismo di mutua esclusione che permetta la guida con un solo dispositivo alla volta e allo stesso tempo il cambio automatico del dispositivo di comando La guida assistita ha lo scopo di aiutare l utente nel comando della car rozzina con funzionalit come evi
196. nti I primi prototipi di carrozzine elettriche con funzionalit estese risalgono ai primi anni 80 Nel corso degli anni ne sono state sviluppate molte con ca ratteristiche molto differenti per quanto riguarda il tipo di sensori utilizzati le interfacce di comando per la guida e le funzionalit offerte Di seguito sono brevemente elencati alcuni progetti e le loro peculiarit una lista pi completa si pu trovare in 38 42 e 54 SMART ALEC Stanford USA 1980 1990 la prima carrozzina semiau tonoma basata su una struttura commerciale modificata equipag giata con encoder sulle ruote e sonar per il rilevamento di ostacoli Il sistema di guida basato sul rilevamento della posizione della testa del l utente effettuato sempre con l uso dei sonar Le funzionalit offerte sono l evitamento delle collisioni il mantenimento di distanze prefis sate da un muro utile per lo spostamento nei corridoi e inseguimento di obiettivi Madarasz wheelchair Universit dell Arizona USA 1986 29 la pri ma carrozzina autonoma equipaggiata con sonar e sistemi di visione 2 3 Progetti esistenti 15 artificiale per il riconoscimento di landmark artificiali I movimenti da eseguire sono specificati in un linguaggio apposito Mister Ed IBM USA 1990 11 un robot mobile con un sedile su di esso Il software basato su architettura subsumption con comp
197. nti da VisualOdometryExpert da MTiExpert e da VisionExpert e integrare con un criterio opportuno le informazioni ricevu te La modifica introdotta risulta completamente trasparente al sistema complessivo e al controllore fuzzy 6 2 11 Temporizzazione Presentando l architettura del sistema si volutamente tralasciata la descri zione della temporizzazione dei membri introdotti Per scegliere la durata del periodo di esecuzione di un membro necessario considerare il tempo di calcolo necessario al membro stesso che non deve risultare superiore al periodo considerato La periodicit di alcuni membri strettamente legata alla funzione svol ta Ad esempio i due membri di tipo HokuyoExpert hanno una periodicit strettamente legata alla possibilit di acquisire nuovi dati dai sensori men tre il tempo di esecuzione del membro MotorExpert legato alla frequenza con cui il circuito di interfaccia tra la carrozzina e il PC comunica sulla porta seriale Le periodicit scelte per i vari membri sono elecate e motivate di seguito MotorExpert viene rieseguito ogni 20ms in quanto il circuito di inter faccia tra il PC e la carrozzina produce nuovi dati e accetta nuovi comandi a questa frequenza BrianExpert viene rieseguito ogni 20ms Esso lavora in stretto legame con MotorExpert La temporizzazione proposta permette di produrre il controllo alla stessa frequenza con cui posibile comandare il moto della carrozzina MSG_FROM_IMU M
198. nza del soffitto dal sistema proiettore e telecamera di 6 m Il numero di tag differenti 32 nella versione base e 4096 in quella destinata a coprire ampi spazi A seconda della distanza dal soffitto sono proposti diversi tipi di tag Alcune caratteristiche tecniche sono riportate in Tabella 3 5 e un esempio d uso visibile in Figura 3 6 Per ulteriori dettagli si rimanda a 19 e al sito del costruttore Shttp www hagisonic com 3 2 Posizionamento in ambienti indoor Figura 3 6 Esempio d uso di StarGazer Interfaccia UART TTL 3 3V 115 200bps Dimensioni 50 x 50 x 28mm Protocollo basato sul codice ASCII Frequenza rilevazione 10 20 Hz Range di localizzazione per singolo landmark diametro da 2 5 a 5 m con soffitto a distanza da 2 a 6 m Ripetibilit 2 cm Risoluzione dell angolo 1 0 grado Tipi di landmark Tipo 1 1 2 lt h lt 2 9 m Tipo 2 2 9 lt h lt 4 0 m Tipo 3 4 0 lt h lt 6 0 m Tipi di landmark classificati per numero di codici disponibili HL1 32 per spazi normali HL2 4 096 per spazi estesi Caratteristiche elettriche 5 V 300 mA 12 V 70 mA Tabella 3 5 Caratteristiche tecniche di StarGazer 31 32 Capitolo 3 Panoramica sulla robotica mobile 3 2 3 Ubisense Eun prodotto commerciale per la localizzazione basato su tag mobili attivi e sensori fissi sulle pareti I tag mobili
199. o che fornisca solo i dati effettivamente necessari Alternativamen te possibile studiare in modo approfondito il comportamento del sensore al fine di sviluppare un metodo efficace di stima della velocit che coinvol ga nel calcolo un numero maggiore di dati come ad esempio i dati relativi al campo magnetico che permetterebbero di compensare l inclinazione del sensore rispetto al terreno Un altra possibilit quella di abbandonare l u so del sensore inerziale e giroscopico ed equipaggiare la carrozzina con un sistema di odometria Tale sistema potrebbe essere sviluppato con tecnolo gie differenti come ad esempio tramite l uso di di encoder posti sulle ruote oppure di telecamere che inquadrano il terreno su cui si sviluppa il moto e stimano la velocit del movimento basandosi sull analisi delle immagini rilevate 8 3 Sistema di localizzazione Il sistema di localizzazione realizzato permette di rilevare in tempo reale e in modo semplice la posizione della carrozzina in un ambiente noto oppor tunamente attrezzato con marker posizionati sul soffitto I pregi principali di questo sistema sono 190 Capitolo 8 Conclusioni e sviluppi futuri e Costo estremamente contenuto in quanto i marker sono stampati su semplici fogli di carta e fissati sul soffitto con nastro adesivo Facilit di posizionamento dei marker in quanto i marker sono po sizionati arbitrariamente e la loro posizione relativa viene rilevata in fase d
200. o degli ostacoli tecniche di localizzazione per ambienti indoor telecamere e visione artificiale pianificatori di percorsi e architetture software per la rea lizzazione di controllori robotici Sviluppare in questa sede un analisi com pleta dello stato dell arte della robotica mobile sarebbe alquanto complesso e lungo di conseguenza in questa sezione sono descritte solo le tecniche e i sensori che sono risultati utili o che hanno ispirato lo sviluppo del presente lavoro 3 1 Sensori per il rilevamento di ostacoli Nella Sezione 2 2 5 sono stati introdotti i principali tipi di sensori utilizzati per il riconoscimento degli ostacoli presenti nell ambiente In questa sezione si introducono le tecniche utilizzate per la misura della distanza e vengono presentati gli scanner laser di cui viene anche fornita una panoramica dei prodotti disponibili sul mercato 3 1 1 Misurazione della distanza Per misurare distanze tra un punto e una superficie si possono usare tre approcci base come descritto in 5 e Misura del tempo di volo Time of flight TOF tra l istante di emis 20 Capitolo 3 Panoramica sulla robotica mobile Emettitore e ricevitore Figura 3 1 Principio di funzionamento di un sistema di misura della distanza a tempo di volo sione di un impulso di energia e il suo ritorno alla sorgente dopo aver subito la riflessione da parte di una superficie e Misura dello sfasamento phase shift m
201. o pi banale la media delle rilevazioni 3 1 3 Misuratori di distanza a tempo di volo laser I sistemi di misura della distanza laser a tempo di volo detti anche laser radar o lidar fecero la loro comparsa nel 1970 presso i Jet Propulsion La boratory di Pasadena California La precisione dei primi prototipi era di qualche centimetro per misure comprese tra 1 e 5 metri Per permettere di misurare le distanze rilevate in pi direzioni sono stati introdotti i laser scanner Il principio di funzionamento molto semplice e consiste nel mon tare l emettitore laser e il ricevitore su un asse ruotante In questo modo possibile effettuare la scansione delle distanze su un piano solitamente con una limitazione sull escursione angolare del motore I sensori presenti sul mercato sono numerosi e con caratteristiche diffe renti Per poter realizzare un confronto significativo tra i prodotti di queste case sarebbe necessario impostare degli esperimenti standard e valutare le prestazioni di ogni sensore In questo contesto sufficiente paragonare le caratteristiche tecniche indicate dal costruttore allo scopo di fornire una panoramica dei sistemi disponibili Gli scanner laser presi in considerazione sono prodotti da SICK e Siemens Germania e Hokuyo Giappone Per 3 1 Sensori per il rilevamento di ostacoli 23 Figura 3 3 Laser scanner commerciali in ordine da sinistra a destra e dall alto in basso Sick LMS200 LMS211 LMS221 LM
202. o precisi e rapidi come quello attuabile tramite un joystick Ad esempio con un interfaccia di riconoscimento vocale sar possibile eseguire comandi a intervalli di tempo dell ordine dei secondi inoltre bisogna porre molta attenzione ai casi in cui i comandi non vengono riconosciuti correttamente o vengono del tutto ignorati I metodi e i dispositivi di comando alternativi devono dunque essere ac coppiati con sistemi di identificazione degli ostacoli che garantiscano la sicu rezza dell utente dalle conseguenze di comandi non riconosciuti o interpretati male e g NavChair 28 12 Capitolo 2 Ausili alla mobilita e tecnologia 2 2 5 Sensori per il rilevamento di ostacoli Per poter sviluppare funzionalit di supporto alla sicurezza del movimento della carrozzina come evitamento ostacoli o approccio sicuro a oggetti necessario introdurre sensori di distanza e prossimit I pi utilizzati ed economici sono i dispositivi di misura basati su ultrasuoni Sonar e su luce infrarossa IR Il sonar permette di rilevare oggetti che riflettono l onda sonora emessa e calcolando il tempo di volo stima la distanza dell oggetto incontrato I problemi principali si riscontrano con i materiali fonoassorbenti e con su perfici che non riflettono nella direzione di provenienza il suono risultando cos invisibili al sensore I sonar sono solitamente utilizzati in numero ele vato e montati in modo da coprire l inte
203. o scanner laser HokuyoExpert HokuyoExpert acquisisce periodicamente le informazioni da un senso re laser Hokuyo URG 04LX e permette di trattarle opportunamente per produrre informazioni sintetiche Ogni membro si occupa di un solo sensore laser quindi saranno attivi contemporaneamente due membri di questo tipo uno per il sensore laser di sinistra e uno per quello di destra Ogni membro a conoscenza del sensore che rappresenta ovvero all atto della creazione vie ne associato al membro una stringa che identifica in modo univoco il sensore e g left e right Quando un membro di tipo HukuyoExpert viene inizia lizzato esso invia allo scanner laser il comando di scansione a ciclo continuo in modo che il laser provveda a inviare periodicamente i dati della scansione senza bisogno di alcun altro comando A ogni attivazione il membro legge i dati dal sensore laser a esso associato e qualora la lettura dei dati non vada a buon fine provvede a inviare un comando di reset al sensore laser inviando prima un messaggio d errore di tipo MSG_FROM_HOKUYO_ERR che indica il malfunzionamento temporaneo del sistema Il contenuto di questo messaggio costituito da una sola coppia nome valore Il nome indica il sen sore laser che non funziona correttamente mentre il valore fissato a 1 La gestione del messaggio d errore verr descritta nella Sezione 6 2 9 quando si introdurr il modulo che gestisce gli errori del sistema Per persegui
204. odulare e quindi facilmente modificabile ed estendibile Gli elementi hardware e software dedicati all implementazione delle fun zionalit estese della carrozzina elettrica non precludono n modificano la possibilit di guida manuale della stessa e dunque appaiono del tutto tra sparenti all utente che non desideri servirsene Essi consentono inoltre il controllo della carrozzina tramite un dispositivo di comando alternativo co stituito da un joypad senza fili che permette di controllare la carrozzina anche a distanza pu ad esempio risultare utile per richiamare la carrozzi na da una posizione di parcheggio verso il letto dell utente per consentire la salita a bordo di quest ultimo Successivamente si implementata la funzionalit di assistenza alla guida che aiuta l utente in situazioni critiche e pericolose evitando collisioni e assi stendo l utente in manovre come l aggiramento degli ostacoli o il movimento parallelo al profilo di un muro Per fornire al calcolatore le informazioni sensoriali necessarie per l esecuzione di tali compiti sono stati installati a bordo della carrozzina due scanner laser Un punto di forza del sistema realizzato risiede nell autonomia con cui la carrozzina determina quale sia l azione corretta da intraprendere Ad esempio il sistema di controllo sceglie automaticamente se arrestarsi in presenza di un ostacolo o se modificare la traiettoria seguita in modo da evitarlo basandosi sulle
205. oglia di 100mm in verde laser il rumore che affligge le misure rende possibile ridurre nettamente il numero di punti generati rispetto al numero di punti di partenza Un esempio del profilo rilevato con un sensore laser e la sua semplifica zione ottenuta con una soglia impostata a un valore di 100mm mostrato in Figura 6 18 I punti originali sono 682 mentre quelli del profilo semplificato sono 36 Esempi di esecuzione Per maggiore chiarezza sono presentati alcuni esempi di funzionamento del sistema che si occupa di pianificare ed eseguire il percorso In Figura 6 19 mostrata una interazione tipica tra i membri Innanzitutto co me ipotesi semplificativa supponiamo che sia sempre disponibile la posi zione della carrozzina ovvero che periodicamente sia ricevuto un messaggio di tipo MSG_FROM POSE ACTUAL POS e non arrivi mai un messaggio di tipo MSG_FROM_POSE_UNKNOW_ACTUAL POS La sequenza la seguente 1 Alla ricezione di un messaggio di tipo MSG_GOAL_XY dato che disponi bile la posizione della carrozzina il membro SequencerExepert richiede ai due membri HokuyoExpert il profilo degli ostacoli rilevati con un messaggio di tipo MSG_FROM_SEQUENCER_ASK_FOR_SEGMENTS 144 Capitolo 6 Software di controllo 2 SequencerExpert riceve entrambi i messaggi MSG_FROM_HOKUYO_POINT_ LIST contenenti i punti che descrivono il profilo semplificato degli osta coli e trasforma i punti in coordinate assolute Conosc
206. ol lare Il nome associato a ogni zona composto dal prefisso mindist_ seguito dal nome del sensore laser che ha effettuato la rilevazione e g left o right dal suffisso _zone_ e da un numero che indica la zona nella seguente forma mindist_ nome _zone_ n Il numero della zona progressivo procedendo in senso antiorario partendo da 0 Ad esempio considerando il membro che si occupa del sensore laser di sinistra e definendo quattro zone con limiti 120 60 0 60 120 alla zona 120 60 corrisponde il nome mindist_left_zone_0 alla zona 60 0 il nome mindist_left zone 1 e cos via Per uno studio pi dettagliato della suddivisione in zone effettivamente utilizzata si rimanda alla Sezione 7 4 Il controllore fuzzy deve essere esteso per ragionare anche sui dati sin tetici prodotti dai sensori laser A ogni variabile mindist_ nome _zone_ n deve essere associato un tipo di dato fuzzy per la fuzzyficazione dei dati e dei predicati per trattarli Supponendo di definire gli insiemi VICINO MEDIO LONTANO e MOLTOLONTANO e di associarli a un insieme TDISTANZA possibile creare dei predicati che descrivono la distanza dall ostacolo rilevato il senso re a cui si riferiscono e la zona considerata A questo livello non opportuno utilizzare come nome della zona il numero progressivo che la identifica ma pi intuitivo descrivere la zona in base al suo orientamento relativo alla carrozzina e g Nord NordEst NordOvest
207. ompilato durante l esecuzione del membro stesso 2 Creare un membro che si occupa di ricevere tutti i messaggi inviati dagli altri membri e di farne il log su un unico file 3 Creare un oggetto accessibile da tutti i membri residenti sulla stessa Agor che rende mutuamente esclusivo l accesso a un unico file di log La prima soluzione permette di creare log molto dettagliati sul funzio namento del singolo membro in quanto la storia dell esecuzione risulta descritta in modo molto preciso e chiaro Purtroppo per difficile risali re al comportamento complessivo del sistema in quanto sarebbe necessario unire i dati dei singoli file seguendo una sequenza temporale La creazione di un membro che si occupa di ricevere tutti i messaggi spe diti dagli altri membri del sistema permette di realizzare un sistema di log che manterrebbe traccia del funzionamento del sistema nel suo complesso Questo metodo presenta per due problemi abbastanza evidenti Innan zitutto il sistema complessivo risulterebbe appesanto dalla presenza di un membro che si occupa solo del log dei messaggi Inoltre il log potrebbe risul tare scarno e povero di dati salienti infatti le informazioni che descrivono il funzionamento del sistema non sono solo quelle contenute nei messag gi in quanto in alcuni casi necessario inserire nel log dati che non sono 154 Capitolo 6 Software di controllo presenti nei messaggi inviati ma sono noti solo al memb
208. on desiderato in BRIAN in Mr BRIAN possibile posizionare al livello pi basso priorit pi bassa il comportamento di inseguimento target e al livello superiore il comportamen to di evitamento ostacoli Quando l inseguimento target propone di avanza re in presenza di un ostacolo frontale il comportamento al livello superiore pu cancellare la proposta del livello inferiore e proporre una rotazione per evitare l ostacolo 3 6 BRIAN e Mr BRIAN 47 Il ciclo di controllo di Mr BRIAN evoluzione di quello di BRIAN risulta il seguente 1 Fuzzyficazione dei dati di ingresso 2 Valutazione dei valori di verit dei predicati 3 Scelta dei comportamenti da attivare regole CANDO 4 Valutazione delle regole dei comportamenti del livello i esimo 5 Fusione dei risultati 6 Defuzzyficazione dei risultati 7 Se i era l ultimo livello fine del ciclo di controllo Altrimenti incremento del valore di i e ripresa dal punto 1 Si noti che nel momento in cui si riprende il ciclo dal punto 1 non necessario fuzzyficare nuovamente tutti i valori e rivalutare tutti i predicati La fuzzyficazione riguarda solo le uscite del livello precedente che si trasfor mano in ingressi e i predicati da valutare sono solo quelli che coinvolgono le variabili d uscita del livello precedente Mr BRIAN presenta molti aspetti vantaggiosi rispetto alle architetture classiche presentate nella Sezione 3 4 Innanzitutto l uso della logica fuzzy
209. on sono di tipo numerico ma di propagazione dell errore considerando ad esempio un errore e che affligge la coordinata tz la posizione della telecamera in coordinate marker risulta ic i u1 U2 us bas bays be z tye V1 V2 V3 ltz ty te F z 5 12 tz w1 We w3 te ty tz ovvero si introduce un errore sulle tre coordinate pari a i dial 203 liye ty 203 5 13 ta tzl E W3 Considerazioni analoghe si ottengono studiando l effetto prodotto dal rumore su e y su t e ty La valutazione degli effetti dell errore ea Eg e ey sull orientamento pi complessa e non viene trattata ma facile intuire che sommando tutti gli effetti degli errori si pu arrivare a degradare notevolmente la precisione della stima della posizione della telecamera nel sistema di riferimento marker 102 Capitolo 5 Localizzazione con landmark artificiali 5 6 Semplificazione da 6 a 3 dof Le prove svolte con il sistema di localizzazione basato sull uso dei dati for niti dalla libreria di gestione dei fiducial marker hanno rivelato che non possibile stimare in modo preciso la posizione e l orientamento della teleca mera rispetto al marker soprattutto quando le distanze tra i due sistemi di riferimento sono elevate Limitandosi ai risultati finora ottenuti potrebbe sembrare impossibile utilizzare il sistema proposto per localizzare un ogget to mobile in un ambiente
210. onExpert MSG_FROM_IMU MSG_FROM_VISION_POS PoseExpert MSG_FROM_POSE_ACTUAL_SPEED MSG_FROM_POSE_ACTUAL_POS MSG_FROM_POSE_UNKNOW_ACTUAL_SPEED MSG_FROM_POSE_UNKNOW_ACTUAL_POS Figura 6 14 Sottosistema composto da VisionExpert MTiExpert e PoseExpert informazioni della velocita Le informazioni sulla posizione della carrozzina non possono essere utilizzate direttamente dal controllore fuzzy ma saranno utilizzate per pianificare ed eseguire percorsi si veda la Sezione 6 2 7 e quindi inutile utilizzare un flag che indichi la conoscenza della posizione della carrozzina L architettura composta dai membri VisionExpert MTiExpert e Po seExpert e i messaggi scambiati sono visibili in Figura 6 14 Il membro PoseExpert potrebbe essere ulteriormente esteso per calcolare la velocit di movimento della carrozzina a partire dalle posizioni rilevate ma si scelto di non implementare questa funzionalit Infatti la stima della velocit basata sulla differenza delle posizione nel tempo sarebbe disponi bile solo quando il sistema si muove in ambienti noti mentre il sistema di evitamento ostacoli sempre attivo Dato che le informazioni sulla velocit di movimento sono disponibili continuamente grazia alle informazioni prove nienti da MTiExpert si scelto di non complicare ulteriormente il membro PoseExpert con l introduzione di un nuovo sistema di stima della velocit che sarebbe disponibile saltuariamente
211. one collegato a una porta USB ha una portata di circa 10 metri e le batterie che lo alimentano garantiscono un autonomia di circa 100 ore Il joypad mette a disposizione dell utente due controlli analogici costituiti da una levetta mobile su un range angolare di 360 uno digitale con quattro frecce direzionali e 12 pulsanti digitali di cui due accessibili con la pressione delle levette analogiche Shttp www xenarc com Shttp www logitech com 4 2 Sensori e componentistica hardware 59 Figura 4 6 Il Joypad Logitech RumblePad2 senza fili La presenza di molti pulsanti e di due leve analogiche e una digitale rende questo joypad molto versatile Si scelto di utilizzare solo alcuni dei pulsanti disponibili In paricolare i pulsanti numerati da 1 a 4 funzionano da selettori della velocit massima raggiungibile La pressione del pulsante 1 riduce il valore di fondo scala al 40 il 2 al 60 il 3 all 80 e il 4 mantiene inalterato il fondo scala La guida avverr con uno solo dei controlli disponibili La selezione di una delle levette analogiche avviene con la pressione del pulsante associato alla leva stessa Qualora si preme la leva che si sta utilizzando per il comando il controllo passa ai pulsanti digitali All avvio del sistema il controllo del sistema digitale Per utilizzare ad esempio la leva analogica di sinistra necessario premerla Una nuova pressione della stessa leva sposta il controllo al pannello digit
212. one destra sinsitra I valori ammissibili vanno da 1 a 1 con 0 che indica la posizione di riposo della leva i valori positivi indicano la leva spostata verso destra e quelli negativi leva a sinistra MSG_FROM_MOTION_INFO completa le informazioni del messaggio preceden te con i seguenti dati readdatacount indica il numero di trame lette dalla porta seriale readdatacounterr indica il numero di errori riscontrati nelle trame countsend indica il numero di trame di comando inviate al circuito 116 Capitolo 6 Software di controllo Le informazioni di questo messaggio risultano utili per il log del funziona mento dell applicazione software e per il debug ma non sono strettamente necessarie per il controllo della carrozzina La sequenza di operazioni svolte ciclicamente da MotorExpert la se guente 1 Lettura dei dati relativi alla posizione della leva e invio dei messaggi di tipo MSG_FROM_MOTION_BRIEF e MSG_FROM_MOTION_INFO 2 Controllo della disponibiltia di messaggi di tipo MSG_FROM_BRIAN in ca so affermativo necessario aggiornare i valori di attuazione da inviare al circuito di interfaccia 3 Se al punto 1 si rilevato che il circuito in modalit automatica invio del valore di attuazione I valori della posizione della leva comunicati dal circuito e quelli del comando inviati dal computer sono interi compresi tra 0 e 255 con 128 come valore della posizione di riposo MotorExpert si occupa di convertirli s
213. one sugli assi z y e x del sistema di riferimento solidale con la telecamera rispetto al sistema di riferimento posto sul marker risolvendo il Sistema 5 9 Si calcolata la relazione che descrive la posizione e l orientamento della telecamera rispetto al marker nei casi precedentemente analizzati con marker fermo nel centro e nei quattro angoli dell immagine La posizione nelle sole coordinate x e y della telecamera nel sistema di riferimento solidale con il marker visualizzata in Figura 5 14 e nelle coordinate x y e z in Figura 5 15 I dati di posizione e orientamento estratti sono riassunti in Tabella 5 2 subito evidente che l inversione della relazione introduce degli errori L analisi delle deviazioni standard dei dati di posizionamento confermano come la precisione del sistema risente fortemente del cambio di sistema di riferimento Risultati molto peggiori si ottengono per invertendo la relazione per i dati relativi al percorso rettangolare La posizione della telecamera rispetto al sistema di riferimento del marker riportata nelle sole coordinate x y in Figura 5 16 e nelle coordinate x y e z in Figura 5 17 evidente che l inversione della matrice degrada notevolmente le rilevazioni al punto da rendere irriconoscibile il percorso effettuato Investigando sulle cause che contribuiscono alla degradazione del risulta to di posizionamento nel momento in cui si effettua
214. onibilit dei modelli CAD dei prodotti ha permesso di progettare det tagliatamente la struttura prima della sua realizzazione La struttura non deve supportare carichi gravosi si scelto quindi di utilizzare i profilati di sezione 20x20mm e i relativi componenti di fissaggio squadrette angolari viti e tasselli specifici etc La carrozzina dispone di una zona posteriore libera retrostante al sedile del guidatore su cui possibile montare una struttura di supporto La presenza del telaio in acciaio della carrozzina permette di fissare facilmente la struttura Nella spiegazione del progetto della struttura di supporto si fa riferimento alla Figura e alle sue parti identificate da numeri Si utilizzato un singolo profilato di alluminio per la base 1 di di mensioni 80x600x20mm a cui sono sono stati collegati quattro profilati di lunghezza 1060mm 2 per formare un parallelepipedo a sviluppo verticale con misure di 1060x80x490mm Il parallelepipedo chiuso superiormente da due profilati da 80mm 3 e da due di 490mm 4 La telecamera deve essere posizionata in cima a questa struttura in posizione centrale 5 La larghezza del parallelepipedo stata stabilita in base alla larghezza del se dile di modo che fosse possibile far passare dei profilati orizzontali su cui fissare i sensori laser circa all altezza delle ginocchia dell utente Si sono uti lizzati due profilati da 600mm per ogni lato Il primo profilato 6 fissato a
215. op 2007 Eric Woods Paul Mason and Mark Billinghurst MagicMouse an inexpensive 6 degree of freedom mouse In Proceedings of the 1st inter national conference on Computer graphics and interactive techniques in Australasia and South East Asia 2003 XSens Technologies Enschede The Netherlands MTi Miniature Attitude and Heading Reference System H Yanco Integrating Robotic Research A Survey of Robotic Wheelchair Development 1998 L A Zadeh Fuzzy sets Information and Control 8 338 353 1965
216. oro sperando di avere l occasione di poter esprimere nuovamente il mio ringraziamento non solo con le parole scritte qui Indice Sommario I Ringraziamenti III 1 Introduzione 1 2 Ausili alla mobilit e tecnologia 7 2 1 Ausili alla mobilit FETTE PESCE PUT 7 2 2 Carrozzine elettriche e robotica mobile 2 2 8 2 2 1 Estensione delle funzionalit delle carrozzine elettriche 9 2 2 2 La carrozzina elettrica come robot mobile 10 2 2 3 Funzionalit offerte 2 ee 10 2 24 Dispositividicomando 11 2 2 5 Sensori per il rilevamento di ostacoli 12 2 2 6 Software di controllo o0 a 13 2 2 7 Localizzazione e posizionamento 13 2 3 Progetti esistenti LL 14 3 Panoramica sulla robotica mobile 19 3 1 Sensori per il rilevamento di ostacoli 19 3 1 1 Misurazione della distanza 19 3 1 2 Misura di distanza a tempo divolo 20 3 1 3 Misuratori di distanza a tempo di volo laser 22 3 2 Posizionamento in ambienti indoor 27 3 2 1 Posizionamento assoluto LL 29 3 2 2 StarGazer gt csao dra saare tkis ies uo 30 3 2 3 Ubisense s e csr es 32 3 3 Pianificazion
217. orta menti primitivi come l attraversamento di porte mantenimento della distanza da un muro e inseguimento di un target VAHM Universit di Metz Francia 1992 2004 37 7 acronimo di V i chule Autonome pour Handicap Moteur basato su un robot mobile con un sedile L architettura di controllo a tre livelli e rende possibile la navigazione autonoma basata su mappa interna evitamento ostaco li e mantenimento della distanza costante da un muro La scelta della modalit operativa lasciata all utente La mappa interna multipla metrica e topologica Per la pianificazione del percorso da seguire utilizza fari a luce infrarossa stato realizzato un secondo prototi po con le stesse funzionalit basato su una carrozzina commerciale modificata NavChair Universit del Michigan USA 1993 2002 28 si basa su una carrozzina commerciale con modifiche al sistema di controllo dei moto ri Offre funzionalit di evitamento collisioni e un gruppo di compor tamenti per compiti specifici come il passaggio per porte o il manteni mento della distanza costante da un muro I comandi possono essere impartiti grazie a un sistema di riconoscimento vocale TinMan Kipr USA 1994 1999 34 rappresenta una serie di prototipi basati su carrozzine elettriche Il primo prototipo utilizzava un dispo sitivo meccanico per muovere la leva del joystick i successivi sono stati sviluppati modific
218. osizione della carrozzina e il suo orientamento nel sistema di riferimento assoluto calcolare la posizione dei punti nella mappa Pi precisamente detta T n la matrice che descrive la posizione della carrozzina nel sistema di riferimento assoluto lio la trasformazione che porta dal sistema di ri ferimento solidale con la carrozzina al sistema di riferimento solidale con il left Rie a eft i punti rilevati dal sensore laser espressi nel sia L sensore laser di sinistra P sistema di riferimento solidale con il sensore laser stesso possibile per ogni punto rilevato calcolare la posizione nel sistema di riferimento assoluto con W _ mW R Lieft Edil ad 6 2 3 Analogamente si proceder per i punti rilevati dal sensore laser di destra utilizzando la matrice TES Noti i punti che descrivono gli ostacoli dinamici rilevati al momento in cui si scelto di pianificare un percorso la posizione della carrozzina che rappresenta il punto di partenza e il punto di destinazione possibi le comporre e inviare il messaggio MSG_FROM_SEQUENCER_PLAN_REQUEST che richiede la pianificazione del percorso Se la risposta a tale messaggio MSG_FROM_SPIKE_GOAL_UNRECHABLE l esecuzione di SequencerExpert ripren de dall inizio ovvero dall attesa di un nuovo messaggio di specifica del pun to di destinazione Se la risposta MSG_FROM_SPIKE_VIA_POINT_LIST allora SequencerExpert memorizza tutti i via point specificati dal pianificatore e
219. ototype Autonomous Robots 2 77 88 1995 35 Salvatore Nicosia and Francesco Martinelli Dispense del corso di robo tica industriale pianificazione del moto dei robot Technical report Universita degli Studio di Roma Tor Vergata 2000 36 E Prassler J Scholz and P Fiorini A robotics wheelchair for crowded public environment IEEE Robotics amp Automation Magazine 8 38 45 2001 A Pruski and G Bourhis The VAHM project a cooperation bet ween an autonomous mobileplatform and a disabled person In EEE 37 International Conference on Robotics and Automation 1992 38 Sven R nnb ck On Methods for Assistive Mobile Robots PhD thesis Lulea University of Technology 2006 39 Shigeru Saito Atsushi Hiyama Tomohiro Tanikawa and Michitaka Hirose Indoor marker based localization using coded seamless pattern for interior decoration In EEE Virtual Reality Conference pages 67 74 2007 40 H Seki S Kobayashi Y Kamiya M Hikizu and H Nomura Autonomous semi autonomous navigation system of a wheelchair byac tive ultrasonic beacons In IEEE International Conference on Robotics and Automation 2000 Proceedings ICRA 00 2000 41 SICK AG Erwin Sick Str 1 D 79183 Waldkirch Germania SICK Automatic Identification Catalog 2006 42 R Simpson Smart wheelchairs A literature review Journal of Rehabilitation Research amp Development 42 4 423 438 2005 43 R Simpson E Lopr
220. pitolo 6 Software di controllo e imu magz imu_mag_y e imu_mag_z specificano l intensit del campo magnetico terrestre rilevato lungo i tre assi Si noti che nella Sezione 4 2 2 si ipotizzato che non tutti i dati forniti dal sensore sono necessari allo sviluppo del sistema di controllo ma si preferito realizzare il messaggio completo per permettere l estensione del sistema in modo semplice ad esempio qualora si voglia estendere il sistema in modo da utilizzare le informazioni sull intensit del campo magnetico non sar necessario modificare questo membro ma crearne uno che lavora sui dati contenuti nel messaggio MSG_FROM_IMU I dati sensoriali provenienti dal sensore XSens MTi e comunicati trami te il messaggio MSG_FROM_IMU potrebbero essere utilizzati direttamente dal controllore fuzzy Si potrebbero infatti creare delle regole che coinvolgono anche i dati prodotti da questo sensore nei comportamenti Per garantire una maggiore estendibilit del sistema si per introdotto un nuovo mem bro chiamato PoseExpert Analizzato a scatola chiusa PoseExpert un modulo che invia periodicamente due tipi di messaggi MSG_FROM_POSE_ ACTUAL_POS e MSG_FROM_POSE_ACTUAL_SPEED Il primo messaggio comunica la posizione della carrozzina in un sistema di riferimento assoluto il secondo la velocit attuale della carrozzina La parte relativa alla posizione della carrozzina verr trattata nella Sezione 6 2 6 dove
221. posizionati i laser ovvero paralleli al pavimento essi non sono in grado di rilevare ostacoli di altezza inferiore al loro piano di scansione Inoltre non possono in alcun modo rilevare la presenza di rampe di scale in discesa o di altri avvallamenti del terreno 176 Capitolo 7 Risultati sperimentali Figura 7 19 Schema che illustra il funzionamento del sistema nel caso in cui si richieda una rotazione perocolosa Anche le scale in salita non sono rilevate correttamente in quanto il laser misura la distanza dello scalino che alla sua stessa altezza dal pavimento e non quella del primo scalino I tavoli non sono rilevati in modo corretto in quanto risultano visibili solo le gambe di sostegno ma non il piano allo stesso modo alcuni tipi di sedie e di altri oggetti di arredamento non sono correttamente riconosciuti Pi in generale gli ostacoli che non presentano una parete verticale vengono rilevati in modo non corretto e dunque non sempre evitati I sensori laser stessi hanno dei limiti e non riconoscono come ostacoli o riconoscono in modo errato i vetri in quanto il segnale emesso li attraversa o viene riflesso in modo anomalo Considerando gli ostacoli riconosciuti possiamo identificare alcune si tuazioni tipiche in cui il sistema non si comporta in modo adeguato In primo luogo il sistema si comporta in modo inaspettato nei passaggi stretti come ad esempio le porte Cercando ad esempio di attraversare una por ta aperta
222. r rozzina sufficiente utilizzare un solo comportamento che prende il nome di FollowJoystickMotion Le regole che specificano questo comportamento sono molto semplici ed intuitive quindi se ne riportano solo alcune a titolo d esempio FwRwSpeedSteady gt fwrwcmd STEADY FwSpeedVerySlow gt fwrwcmd VSLOWFW LxSpeedFast gt rxlxcmd FASTLX LxSpeedVeryFast gt rxlxcmd VFASTLX Il significato delle regole intuitivo e permette di copiare i valori proposti dalla leva del joystick sui dati di uscita 118 Capitolo 6 Software di controllo BOOLEANFLAGCMD FWRWSPEEDCMD AUTOMATIC VFASTRW MEDIUMRW VSLOWRW VSLOWFW MEDIUMFW VFASTFW MANUAL FASTRW SLOWRW STEADY SLOWFW FASTFW 1 al gt gt 0 1 l 0 8 0 6 0 4 0 2 0 0 2 0 4 06 0 8 1 RXLXSPEEDCMD A VFASTLX MEDIUMLX VSLOWLX VSLOWRX MEDIUMRX VFASTRX FASTLX SLOWLX STEADY SLOWRX FASTRX Figura 6 3 Insiemi fuzzy utilizzati per la defuzzyficazione delle uscite del controllore In realt necessario introdurre un comportamento banale che sar attivo sempre durante il funzionamento del sistema chiamato ModeCmdAuto ed costituito da una sola regola Always gt modecmd AUTOMATIC Questo comportamento si occupa di mantenere la modalit di funzionamento automatica in quanto il predicato Always sempre vero Il membro BrianExpert svolge dunque i seguenti compiti 1 Riceve i messaggi di ingresso d
223. r poter realizzare le funzionalit illustrate nella sezione precedente ne cessario tradurre i requisiti funzionali in obiettivi pi semplici che supportino la fase di progettazione e sviluppo In particolare necessario e Scegliere i sensori e la componentistica hardware da utilizzare per perseguire gli obiettivi proposti e Progettare e realizzare una struttura fisica che ospiti i sensori e i dispositivi che si vogliono utilizzare e Progettare e implementare un architettura di controllo modulare che 4 1 Analisi dei requisiti 51 permetta di realizzare funzionalit di guida assistita e di guida auto noma e che supporti l uso di pi dispositivi di comando e Provare la carrozzina in ambienti controllati al fine di analizzare e va lutare il comportamento delle funzionalit aggiuntive realizzate iden tificandone i pregi e i possibili miglioramenti I sensori e la componentistica hardware da utilizzare sono scelti in base agli obiettivi da raggiungere La scelta dei sensori da utilizzare valuta ta sia con criteri assoluti ovvero che riguardano le caratteristiche generali del sensore sia con criteri specifici che riguardano la possibilit di montare agevolmente e in posizione utile i sensori stessi La componentistica hard ware deve garantire prestazioni di calcolo adeguate e consumi ridotti per garantire elevata autonomia La struttura fisica ha lo scopo di creare una base esterna su cui applicare tutti i compo
224. ra area di interesse anche se questa configurazione pu provocare false rilevazioni dovute alla ricezione da parte di un sensore dell eco di un onda generata da un altro sensore fenomeno del crosstalk rif Sezione 3 1 2 I sensori di distanza a infrarossi emettono luce al posto di suoni e han no dunque difficolt nel rilevare superfici che assorbono la luce infrarossa Anche le superfici trasparenti o rifrattive sono ingannevoli per un sensore IR La categoria di sensori pi evoluta e precisa quella degli scanner laser Laser Range Finder LRF Uno scanner laser costituito da un sensore di misura della distanza montato su una struttura rotante Il sensore laser emette un fascio di luce coerente e misura la distanza della superficie che riflette il fascio emesso misurando il tempo trascorso tra emissione e rice zione Dopo ogni rilevazione la struttura rotante compie un movimento che permette di cambiare l orientamento del fascio laser emesso In questo modo possibile effettuare una scansione planare e conoscere le distanze rilevate con ogni orientamento del laser L angolo di scansione solitamente di 180 ma varia in base ai modelli presenti sul mercato Il costo di un sensore laser elevato ma a differenza dei sensori precedentemente presentati suffi ciente usare uno o due sensori laser per garantire la copertura della zona interessata intorno alla carrozzina e g MAid 36 e SENARIO 21 Per
225. re Non si dunque posta particolare attenzione nel considerare si tuazioni complesse in cui la carrozzina chiamata a operare ma solo esempi semplici effettuati in ambienti controllati Il sistema di evitamento ostacoli sviluppato prevede che la zona scansio nata dai sensori laser sia suddivisa in spicchi all interno dei quali viene selezionata per ogni scansione la distanza minima rilevata Il valore di distanza minima rilevata in ogni zona viene fuzzyficato per essere utilizzato nelle decisioni del controllore fuzzy A differenza di quanto supposto nella Sezione 6 2 4 si notato in fase di test che l uso di un solo tipo di dato fuzzy 166 Capitolo 7 Risultati sperimentali Figura 7 10 Zone angolari identificate per i due scanner laser per descrivere i valori della distanza non sufficiente Infatti immediato notare che gli ostacoli che possono interessare il moto della carrozzina sulle zone laterali non sono a distanze superiori al metro mentre ostacoli frontali anche a distanza di due metri sono da tenere in considerazione in quanto necessario iniziare delle fasi di rallentamento per evitare la collisione Si scelto di mantenere la suddivisione di ogni tipo di dati al massimo in quattro insiemi fuzzy ovvero VICINO MEDIO LONTANO MOLTOLONTANO dove i limiti e la forma degli insiemi fuzzy possono essere stabiliti differentemente per ogni tipo di dato In alcune zone si ritenuto superfluo utilizz
226. re l obiettivo di evitare gli ostacoli necessario che le infor mazioni sulla distanza degli ostacoli rilevate con i sensori laser siano disponi bili al controllore del movimento rappresentato in questo caso da Mr Brian Dato che il numero di dati fornito dai sensori laser a ogni scansione eleva to 682 rilevazioni una ogni 0 36 circa su un range di 240 impossibile trattare tali informazioni una a una nel controllore fuzzy ma necessario rappresentarle in maniera pi sintetica Il membro HokuyoExpert permette di rappresentare sinteticamente i dati definendo un certo numero di zone angolari sui dati delle scansioni all interno delle quali viene scelto come va lore riassuntivo la distanza inferiore riscontrata Considerando ad esempio il range di scansione di 240 con le 682 misure di distanza rilevate e una suddivisione uniforme in 4 zone da 60 ciascuna il sistema seleziona le 4 distanze minime rilevate nelle quattro zone Si noti che il numero di zone e i limiti angolari non sono fissati a priori ma configurabili I dati sintetici devono essere inviati al membro BrianExpert per essere utilizzati nel controllore fuzzy Il messaggio che si occupa di descrivere le in formazioni sulla distanza degli ostacoli MSG_FROM_HOKUYO_MINDIST A ogni 6 2 Componenti software 125 zona identificata corrisponde una coppia nome valore quindi il contenuto del messaggio varia in base all ampiezza delle zone che si desidera contr
227. re l400 priva di obiettivo 4 2 3 Sistemi di localizzazione Per conoscere la posizione della carrozzina all interno di una mappa in un ambiente indoor rendendo cos possibile lo sviluppo di un controllore che sia in grado di compiere dei movimenti autonomi necessario approntare un sistema di localizzazione Si scelto di utilizzare un sistema di localizzazio ne basato su landmark artificiali e tecniche di visione artificiale Il principio di funzionamento del sistema di localizzazione proposto e il confronto con altri sistemi sono illustrati nel Capitolo 5 Per questo sistema necessario che sulla carrozzina sia posizionata una telecamera che inquadri il soffitto e che le immagini prodotte dalla telecamera siano acquisite da un computer e analizzate da un opportuno software Per facilitare l interfacciamento con il computer e con i software di acquisizione immagini si scelto di utilizzare una telecamera digitale Fire 1400 prodotta dalla UniBrain visibile in Figu ra 4 4 Il collegamento con il computer avviene con la porta FireWire IEEE 1394 da cui la telecamera preleva anche l alimentazione necessaria Il CCD da 1 4 della telecamera permette di rilevare immagini a una risoluzione di 640x480 pixel a colori a una frequenza massima di 30 fotogrammi al secon do Si scelto di montare sul sistema un ottica grandangolare con distanza focale di 3 5mm che permette di inquadrare una zona di circa 1 5x1 metri a una distanza
228. redicati 3 Scelta dei comportamenti da attivare 4 Valutazione delle regole dei singoli comportamenti 5 Fusione dei risultati 6 Defuzzyficazione dei risultati La spiegazione in dettaglio di ogni parte del processo di ragionamento la seguente 1 Fuzzyficazione dei dati di ingresso BRIAN permette di associare a ogni variabile di ingresso un insieme di insiemi fuzzy Ad esempio per la variabile Distanza possiamo associa re gli insiemi fuzzy LONTANO MEDIO VICINO raggruppati a loro volta nell insieme TIPODISTANZA La forma delle funzioni carat teristiche dei singoli insiemi fuzzy pu essere rettangolare definendo dunque insiemi tipici della logica classica ad impulso definendo in siemi discreti triangolare trapezoidale a rampa in salita o in discesa e triangolo diviso Figura 3 12 La fuzzyficazione dei dati consiste nell associare a un particolare valore di distanza fornito il valore di verit di ogni predicato atomico associato agli insiemi fuzzy contenuti in TIPODISTANZA 44 Capitolo 3 Panoramica sulla robotica mobile Triangolo Rampa in discesa Rampa in salita Rettangolo Triangolo diviso Trapezio 1 Impulso Figura 3 12 Funzioni caratteristiche per la definizione di insiemi fuzzy previste in BRIAN 2 Valutazione del valore di verit dei predicati Una volta calcolati i valori dei predicati atomici in base ai valori delle variabili di ingresso necessario calcolare
229. rispettivamente di 0 07mm 0 01mm 0 94mm Per quanto riguarda l orientamento si rilevato a 91 38 B 8 76 y 170 90 con rispettive deviazioni standard di 0 03 0 22 0 28 Si nota facilmente che i dati pi rumorosi considerando l errore in valore assoluto sono quelli relativi alla posizione in z e all orien tamento rispetto agli assi x e y Sono state effettuate altre prove statiche di ripetibilit posiziondo il marker nei quattro angoli dell immagine Figura 5 8 con i risultati riportati in Tabella 5 1 Il numero di immagini utilizzate variabile ma sempre superiore alle 300 unit Questi test confermano che i valori pi rumorosi sono quelli di posizione z e di orientamento e y evi denziando per che la forte distorsione dovuta all obiettivo grandangolare 92 Capitolo 5 Localizzazione con landmark artificiali Figura 5 7 Marker in posizione centrale rispetto alla telecamera influisce sulla precisione dei dati rilevati con i marker ai bordi dell immagine Il caso con marker nell angolo Nord Est dell immagine presenta deviazioni standard elevate e peggiori rispetto alle altre configurazioni anche per quan to riguarda i valori di posizione x e y Si pu per notare dalla Figura 5 8 che il marker stato appositamente posizionato al limite dell immagine a differenza degli altri casi in cui si mantenuto un certo margine Nelle Figu
230. risulterebbe pi complessa e sarebbe difficile garantire che entrambi i sottosistemi siano sempre alimentati correttamente e quindi contemporaneamente funzionanti La tensione di 24V pu essere prelevata direttamente dalle batterie e distribuita in parallelo al computer e al monitor che accettano una tensione di alimentazione di 24V I sensori laser hanno bisogno di un alimentazione di 5V per la cui produzione necessario disporre di un convertitore DC DC Si scelto il dispositivo PRS54 7 prodotto da PowerOne che prelevando una tensione in input compresa tra 7V e 40V produce un output a 5V con un erogazione massima di corrente pari a 4A e con efficienza circa dell 80 Per rendere facilmente accessibili le due tensioni di alimentazione di sponibili opportuno realizzare un punto comune di alimentazione con dei connettori standard La tensione di 24V viene derivata in parallelo dalle batterie e portata a 4 connettori standard e al convertitore DC DC L u scita a 5V distribuita in parallelo a 6 connettori Il collegamento alle batterie realizzato con un connettore cos da dare la possibilit di scolle gare facilmente le batterie e utilizzare un alimentazione differente come ad esempio un alimentatore da banco prevista la possibilit di interrompere l alimentazione con un sezionatore La presenza della tensione segnalata da un led e l intero sistema protetto da un fusibile Il dimensionamento del fusibile d
231. ro stesso durante Vesecuzione Ad esempio utile inserire il time stamp dell istante di inizio dell esecuzione di alcuni membri per controllare il periodo di attivazione per controllare la loro periodicit A tale informazione non si pu risalire con i messaggi scambiati tra i membri ma solo con una rilevazione effettuata internamente al membro stesso La terza soluzione risulta la pi vantaggiosa e permette di costruire un log globale del sistema mantenendo la coerenza temporale degli eventi e posticipando la scelta degli eventi di cui effettuare il log all atto dell im plementazione di ogni singolo membro inoltre possibile scrivere sul log informazioni nascoste anche al membro stesso in quanto l oggetto risulta accessibile anche da tutti i moduli software realizzati Si pensi ad esempio al caso in cui il modulo di gestione dei sensori laser rilevi un errore durante la comunicazione con il laser stesso Il membro che gestisce il singolo sen sore laser a conoscenza solo dell evento accaduto mentre all interno della libreria possibile prevedere un log dettagliato del tipo di errore rilevato L oggetto che permette il logging realizzato tramite una classe statica che espone solo tre metodi Sono previsti un metodo di inizializzazione che permette di aprile il file su cui viene effettuato il log e un metodo di chiu sura che chiude il file L ultimo metodo previsto che si occupa dell effettiva scrittura del
232. rrozzina ferma 0 225 r r r r r 0 05 r T r r T media 0 2523 media 0 091351 Il f iN KI N hd i AMATI I i D i ill LAMM ALAN accelerazione m s accelerazione m s S 012 4 tempo s tempo s 0 115 H 0 12 E 0 125 0 13 0 135 HI I 0 14 F media 0 13566 accelerazione m s 0 145 F 0 15 F 0 155 F 0 16 n n f L 1 Figura 7 16 Confronto tra i dati di accelerazione rilevati sull asse x con la carrozzina ferma 7 4 Guida semiautonoma 173 Tipo di dato Insiemi fuzzy VELOCEORARIO LENTOORARIO oe at 1 gt __ I I I i I I I 20 15 20 15 3 0 SPEEDANGLE FERMO Losa Sea I I I I gt 3 1 1 3 LENTOANTIORARIO VELOCEANTIORARIO f I 1 piu I I I I I I I I I gt gt o 3 1520 15 20 Tabella 7 4 Insiemi fuzzy utilizzati per i dati relativi alla velocita rotazionale Utilizzando gli insiemi fuzzy introdotti per descrivere gli ostacoli e la velocit rotazionale stato possibile sviluppare il comportamento Obstacle AvoidMinDist che governa il movimento della carrozzina I comportamenti emergenti che la carrozzina evidenzia durante la guida semiautonoma sono i seguenti 1 Arresto in presenza di ostacoli frontali 2 Mantenimento della distanza di sicurezza dai muri 3 Evitamento di ostacoli fron
233. rt stato tralasciato per semplicita che descrivono gli ostacoli in modo da evitare collisioni Ad esempio un predicato molto semplice che puo essere implementato per evitare che la carrozzina si muova in avanti quando ha un ostacolo vicino frontalmente il seguente AND OstacoloVicinoFrontale DirAvanti gt DEL fwrwcmd ANY fwrwcmd STEADY dove OstacoloVicinoFrontale un predicato che assume valore vero quan do in almeno una delle zone che si trovano di fronte alla carrozzina stata rilevata una distanza definita vicina nella fuzzyficazione dei dati mentre DirAvanti indica che il comando proposto dal livello inferiore del controllo ovvero dai comportamenti che comandano la carrozzina con il joystick o con il joypad in direzione frontale Lo schema del sistema di controllo esteso con i due membri HokuyoEx pert e i messaggi da loro prodotti mostrato in Figura 6 9 Si noti che per semplicit il membro AudioExpert non pi rappresentato Lo schema del controllore fuzzy a 2 livelli mostrato in Figura 6 10 6 2 Componenti software 127 readmode Livello 2 readfwrw readrxix joypadfwrw ObstacleAvoidMinDist joypadrxix mindist_left_zone_1 mindist_left_zone_n mindist_right_zone_1 ws fwrwemd mindist_right zone _n fred rxlxemd rxlxemd Livello 1 ModeCmdAuto FollowJoystickMotion FollowJoypadMotion Figura 6 10 Controllore fuzzy a 2 livelli per la ges
234. rte da questo sistema sono presenti anche in AR ToolKitPlus ARToolKit si dimostrato per un valido sistema di prova in quanto il kit di sviluppo disponibile con licenza GPL fornito con una buona documentazione e con molti esempi d uso ARToolKitPlus che deriva da ARToolKit anche se non ne condivide il codice nato per essere usato da progetti interni al team di sviluppo e non con lo specifico intento di essere distribuito al pubblico La documentazione a corredo e gli esempi forniti sono di bassa qualit anche se l esperienza ac quisita con ARToolKit permette di comprenderne in fretta le caratteristiche salienti La libreria di ARTag distribuita con una licenza a termine e il codice sorgente non disponibile oltretutto non al momento disponibile alcu na licenza commerciale Anche se ARTag presenta alcune caratteristiche interessanti e innovative come il riconoscimento di marker anche se par zialmente occlusi stato scartato a favore di ARToolKitPlus distribuito in modo gratuito a tempo illimitato e corredato di codice sorgente 5 5 2 Posizionamento dei marker e della telecamera Il buon funzionamento del sistema influenzato dalla scelta della posizione dei marker rispetto alla telecamera Innanzitutto nel posizionare i marker necessario garantire che si possa inquadrare ogni marker almeno insieme ad un altro al fine di garantire la connessione del grafo delle relazioni tra i sistemi di
235. sato su TOF critico soprattutto quando il segnale utilizzato luminoso o elettro magnetico I circuiti di controllo e misura del tempo devono essere in grado di misurare intervalli inferiori ai nanosecondi soprattutto se si desiderano misure precise su distanze brevi Quando un onda sia essa acustica o elettromagnetica incontra una su perficie una parte di essa viene riflessa una parte assorbita dal materiale e in alcuni casi una parte attraversa la superficie stessa In base al tipo di ma teriale e all angolo di incidenza l onda riflessa pu essere molto degradata al punto da non essere riconosciuta dal sensore In questo caso la distan za misurata risulta erroneamente infinita ovvero non viene evidenziata la presenza di alcun oggetto sulla traiettoria seguita dall onda Un fenomeno che si verifica soprattutto con i sonar e le onde acustiche il crosstalk o diafonia Figura 3 2 Esso avviene quando un onda emessa 22 Capitolo 3 Panoramica sulla robotica mobile h Robot Z Mobile Superficie riflettente a b Figura 3 2 Fenomeno del crosstalk nella misura delle distanze con i sistemi a tempo di volo a crosstalk diretto e b crosstalk indiretto viene riflessa in una direzione tale per cui viene ricevuta da un altro sensore Il metodo pi comune per evitare questo tipo di errore consiste nel ripetere la misura e nel fornire come distanza rilevata un valore sintetico nel cas
236. seExpert MSG_FROM_POSE_UNKNOW_ACTUAL_POS MSG_FROM_POSE_ACTUAL_POS AX TVOD SSW NOILNOAXS NV1d dOLS OSW MSG_FROM_SEQUENCER_PLAN_REQUEST MSG_FROM_SPIKE_VIA_POINT_LIST Sequencer Expert MSG_FROM_SPIKE_GOAL_UNRECHABLE SpikeExpert MSG_FROM_SEQUENCER_ASK_FOR_SEGMENTS MSG_FROM_HOKUYO_POINT_LIST MSG_FROM_SEQUENCER_EXECUTING_PATH MSG_FROM_SEQUENCER_VIAPOINT_INFO MSG_FROM_MOTION_BRIEF MotorExpert BrianExpert MSG_FROM_BRIAN Figura 6 17 Architettura del sistema che governa la pianificazione e l esecuzione di percorsi automatici Estrazione del profilo degli ostacoli Nella descrizione del funzionamento del membro SequencerExpert si tra lasciata l estensione dei membri HokuyoExpert che permette di conoscere il profilo degli ostacoli Innanzitutto necessario permettere a HokuyoEx pert di ricevere i messaggi di tipo MSG_FROM_SEQUENCER_ASK_FOR_SEGMENTS con corpo vuoto HokuyoExpert prima di leggere i dati dal sensore laser controlla se stato inviato un messaggio MSG_FROM_SEQUENCER_ASK_FOR_ SEGMENTS e in caso affermativo dopo la scansione risponde con il messag gio MSG_FROM_HOKUYO_POINT_LIST Il contenuto di quest ultimo messaggio costituito da una lista di punti le cui coordinate sono specificate nei cam pi hokuyo_point_a_ nome e hokuyo_point_y_ nome dove nome indica se il sensore laser considerato il destro o il sinistro La lista di punti rappresenta una spezzata che indica il profilo
237. seguenti passi 1 Identificazione dei possibili marker presenti nell immagine 2 Riproiezione dell immagine in una vista frontale 3 Confronto dell immagine del marker con un modello e restituzione di 5 2 Fiducial Marker 79 LILIEILIL Figura 5 1 Pattern base di ARToolKit un codice che identifica univocamente il contenuto informativo del marker o un codice di errore qualora il contenuto informativo non corrisponda a nessun modello noto L output di un sistema di identificazione di marker una lista di codici univoci di identificazione dei marker riconosciuti in un immagine e la loro posizione e orientamento espressa relativamente al sistema di riferimento solidale con la telecamera Per una corretta stima delle distanze necessario che le dimensioni del marker siano note a priori con precisione In 16 sono confrontati due sistemi di riconoscimento di fiducial mar ker ARTag e ARToolKitPlus Predecessore di entrambi ARToolKit che stato largamente utilizzato in sistemi di realt aumentata e interfacce per l interazione tra l uomo e il computer Human Computer Interaction HCI come in 52 Per questo motivo utile cominciare la descrizione dei sistemi partendo da ARToolKit stesso La presenza del prefisso AR nel nome di tutti i sistemi citati indica che il loro sviluppo stato principalmente legato a studi di realt aumentata Augmented Reality come in 2 e 17
238. sezione con un ostacolo Il grafo risulta non connesso e diviso in due componenti i punti corrispondenti ai nodi se per andare dal nodo al nodo j con un segmento rettilineo non si incontrano ostacoli allora l arco i j parte del grafo di visibilit ovvero una strada percorribile per raggiungere j partendo da o viceversa Una volta che il grafo interamente costruito la ricerca di percorsi usa metodi di ricerca di cammini su grafi La mappa nel suo complesso viene ignorata se ne mantiene solo una descrizione topologica delle connessioni Il metodo con cui si campionano i punti nella mappa per costruire il grafo influisce fortemente sulle possibilit di realizzare percorsi Se i punti sono scelti in modo casuale possibile che si verifichi soprattutto in presenza di passaggi stretti una situazione come quella di Figura 3 7 in cui due zone della mappa possono risultare raggiungibili Figura 3 7A o non raggiungibili Figura 3 7b 3 3 3 Scomposizione in celle Con la scomposizione in celle la mappa viene partizionata in tante zone tali che ogni zona non si intersechi con nessun altra e l unione dello spazio coperto dalle singole zone copra tutta la mappa In linea di principio la forma e le dimensioni delle celle possono essere di qualunque natura ma per semplicit si utilizzano principalmente forme poligonali regolari Ogni cella oltre alle informazioni sulla sua posizione dimensione forma e conness
239. si render necessaria qualora si decidesse di sviluppare ul teriormente il software e di introdurre nuovi membri ad esempio dedicati allo sfruttamento dei dati di sensori aggiuntivi in quanto nella Sezione 7 6 si mostrato che la potenza di calcolo disponibile appena sufficiente per gestire le funzioni attuali Una caratteristica del software che stata trascurata in questo lavoro l interfaccia grafica che stata realizzata solo per fornire informazioni sul funzionamento del software utili al debugging Uno sviluppo possibile la realizzazione di un interfaccia grafica adatta alle esigenze di un disabile In quest ottica necessario studiare se sia possibile utilizzare una semplice interfaccia grafica o se sia utile integrare lo sviluppo con altri sistemi di input come dispositivi di comando vocale o di tracciamento del moto oculare Sarebbe inoltre auspicabile studiare interfacce grafiche differenti rivolte a specifiche categoria di utenti 8 5 Funzionalit estese Le funzionalit con cui la carrozzina stata estesa sono e Guida con diversi dispositivi di comando e Guida assistita e Guida autonoma I dispositivi di comando utilizzati per comandare la carrozzina sono il joystick originale e il joypad La gestione dei dispositivi affidata ad alcuni moduli software dedicati e il calcolo del comando da inviare alla carrozzina effettuato dal controllore fuzzy La gestione dei dispositivi risulta
240. siasi istante in cui in un immagine ripresa dalla telecamera sia visibile almeno un marker Da tale immagine si ricavano il codice identificativo del marker visibile i e la matrice TK di rototraslazione che descrive la posi zione e l orientamento del marker nel sistema di riferimento solidale con la telecamera possibile calcolare la relazione T da che esprime la posizione e l orien tamento della telecamera nel sistema di riferimento solidale con il marker i tramite inversione della matrice di rototraslazione di partenza Mi m mee 5 1 La relazione che lega il sistema di riferimento solidale con il marker i al sistema di riferimento assoluto identificata da Th permette di calcola re la posizione e l orientamento della telecamera nel sistema di riferimento assoluto TY Tei 5 2 Come ultimo passaggio possibile conoscere la posizione assoluta del sistema di riferimento scelto sull oggetto grazie alla relazione T che descrive la posizione e l orientamento del sistema di riferimento posto sull oggetto rispetto alla telecamera TW T T 5 3 Sostituendo in 5 3 le Equazioni 5 2 e 5 1 si ottiene TY TH TQ TE 5 4 Il primo e l ultimo termine dell equazione di cui sopra sono costanti in quanto stabiliscono relazioni rigide tra sistemi di riferimento Il termine centrale varia in base al posizionamento relativo di telecamera e marker i esimo L Equ
241. sibili da distanze superiori al metro mentre marker pi grandi sono Shttp www vision caltech edu bouguetj calib_doc 90 Capitolo 5 Localizzazione con landmark artificiali Figura 5 6 Struttura di test per il sistema di localizzazione difficilmente riproducibili con stampanti comuni in quanto buona prassi lasciare un abbondante margine bianco intorno al bordo nero del marker per favorire l identificazione del contorno Non scopo di questo lavoro proporre dei metodi di test per valutare la precisione delle misure effettuate e analizzare in modo approfondito le condizioni che migliorano o peggiorano le prestazioni dei sistemi di localiz zazione basati su fiducial marker ma alcuni test preliminari sono stati svolti per analizzare la bont del sistema in uso Sistema di riferimento telecamera Inizialmente si svolto un test di ripetibilit ovvero sono state registrate pi immagini mantenendo ferme sia la telecamera che il marker In linea teorica analizzando queste immagini si dovrebbero ottenere sempre gli stessi risultati ma ci non garantito a causa della presenza di rumore Tale rumore dovuto ad esempio a vibrazioni impercettibili della struttura o variazioni delle condizioni di luce con cui si effettua la ripresa Inoltre la condizione di perpendicolarit tra il marker e la telecamera favorisce gli errori nella stima della rotazione relativa tra il sistema di riferimento solidale con il marker e quel
242. spone gia di interfacce per il comando in velocita e la misura della velocita con en coder sulle ruote Il primo prototipo prevedeva navigazione autonoma basata su landmark artificiali e odometria abbinata all evitamento di collisioni con sonar IR e bumpers Le modalit operative erano nu merose distanza costante da un muro attraversamento di porte ed era possibile eseguire percorsi appresi Nel secondo prototipo sono presenti solo sonar ma l algoritmo di evi tamento ostacoli pi sofisticato I comportamenti base con cui in segnare le traiettorie sono la rotazione sul posto e il mantenimento della distanza costante da un muro Nella modalit semiautonoma la carrozzina modifica la sua velocit in base alla presenza degli ostacoli La Figura 2 1 mostra la carrozzina Rolland II e la cintura di sonar che avvolge l intera struttura della carrozzina MAid Germania 1998 2003 36 acronimo di Mobility Aid for elderly and disabled people una carrozzina commerciale modificata nella parte di controllo dei motori Ha due modalit operative Narrow Area Navigation NAN e Wide Area Navigation WAN Nella modalit NAN permette di navigare da un punto di partenza ad un goal nella modalit WAN in grado anche di identificare ed evitare oggetti mo bili nell ambiente Successivamente stata aggiunta la possibilit di inseguire oggetti in movimento Intelligent Wheelchair System Osaka University
243. stema di guida automatica propone per riavvicinarsi alla traiettoria pianificata Una volta superato l ostacolo i comandi impartiti dal sistema di guida autonoma non sarebbero pi annullati e permetterebbero di riportare la carrozzina sulla traiettoria pianificata completando quindi l aggiramento dell ostacolo In Figura 7 26 schematizzato il funzionamento del comportamento previsto Le cause della non corretta sovrapposizione dei comportamenti sono le gate al fatto che il comportamento di evitamento ostacoli stato sviluppato basandosi sui movimenti effettuati durante la guida manuale Per quan to i comportamenti siano tra di loro indipendenti e la guida automatica si comporti dal punto di vista del controllore come un dispositivo di input i movimenti prodotti dal sistema di guida automatica non risultano suf ficientemente compatibili con quelli prodotti da un utente e non vengono quindi correttamente corretti dal sistema di evitamento ostacoli Le linee di sviluppo che si possono seguire per migliorare questo comportamento sono due adattare il comportamento di guida automatica e rendere il control lo prodotto pi simile a quello eseguito da un utente oppure migliorare il 7 6 Tempi di esecuzione 183 Percorso pianificato Figura 7 26 Comportamento previsto per l aggiramento di un ostacolo con azione congiunta del sistema di guida autonoma e di evitamento ostacoli comportamento di evitamento ostacoli
244. stromettere queste informazioni dalla pianificazione al fine di non impedire la creazione di percorsi complessi il pianificatore utilizzato permette di definire una zona di competenza di forma quadrata all ester no della quale i dati relativi agli ostacoli dinamici non sono considerati In questo caso considerando che la distanza massima rilevata dai sensori laser di circa 5 metri si utilizzata una zona di 2 metri in modo da considerare solo gli ostacoli rilevati localmente al momento della pianificazione e di non compromettere la possibilit di creare percorsi complessi 180 Capitolo 7 Risultati sperimentali T Percorso carrozzina J Percorso pianificato Ostacoli dinamici rilevati 6000 4000 2000 y mm 2000 4000 2000 0 2000 4000 6000 8000 Figura 7 22 Esecuzione automatica di un semplice percorso rettilineo Un caso pi complesso considerato quello di un movimento a L ovvero in cui necessario effettuare una svolta netta in una direzione Sono stati eseguiti pi percorsi di questo tipo e i risultati sono mostrati nelle Figure 7 23 7 24 e 7 25 evidente che l introduzione di una curva nel percorso rende pi difficile l esecuzione del percorso da parte della carrozzina Nonostante questo il percorso viene portato a termine e il punto di goal raggiunto anche se il percorso seguito non ricalca
245. suale Quando l utente si concentra su una delle frecce la sua attivit celebrale involontaria viene stimolata dal lampeggio della freccia considerata Tale attivit pu essere rilevata con l uso dell elettroencefalografo e portata come informazione di comando al computer che gestisce il moto della carrozzina Con lo stesso principio di funzionamento sarebbe possibile proporre all utente la scelta tra 194 Capitolo 8 Conclusioni e sviluppi futuri varie destinazioni predefinite e una volta selezionata una destinazione at tivare la funzionalita di guida autonoma della carrozzina per raggiungere la destinazione E facile immaginare che la frequenza con cui possono essere impartiti i comandi tramite l uso di interfacce BCI molto pi bassa rispetto a un sistema di guida tradizionale Per questo motivo assumerebbe notevole im portanza il sistema di evitamento ostacoli che permetterebbe di eseguire in sicurezza comandi di durata temporale medio lunga Presso il Politecnico di Milano sono allo studio alcune tecniche di ri levazione dell attivit celebrale con lo scopo di progettare e realizzare un modulo BCI per la guida della carrozzina elettrica sviluppata in questo la voro Le funzionalit della carrozzina necessitano di essere ulteriormente sviluppate prima di essere pronte per un integrazione con un sistema di co mando di questo tipo ma anche l evoluzione del sistema BCI in corso quindi ragionevole ipotizzar
246. tali decentrati rispetto alla carrozzina 4 Impedimento della rotazione in presenza di ostacoli laterali L arresto in presenza di ostacoli frontali una delle funzionalit pi semplici e allo stesso tempo pi utili che il sistema di evitamento ostacoli rende disponibile Muovendo la carrozzina in direzione perpendicolare verso un muro essa rallenta mano a mano la sua corsa fermandosi in sicurezza quando si a una distanza di circa 20 centimetri dal muro inoltre ga rantito che in presenza di ostacoli frontali vicini la carrozzina non pu n muoversi in avanti n ruotare in quanto questi movimenti possono portare alla collisione con l ostacolo Il mantenimento della distanza di sicurezza dai muri garantisce di poter percorrere lunghi corridoi seguendo uno dei muri che li delimita Quando si muove la carrozzina in direzione incidente a un muro la sua traiettoria viene deviata e resa parallela al profilo del muro come schematizzato in 174 Capitolo 7 Risultati sperimentali Figura 7 17 Mantenimento della distanza costante da un muro della carrozzina Figura 7 17 In questo modo un utente che non fosse sufficientemente pre ciso nel comandare la carrozzina deve semplicemente muovere la carrozzina verso il muro che vuole seguire e lasciare che il sistema di assistenza alla guida posizioni la carrozzina in direzione parallela al profilo del muro Il sistema di assistenza alla guida impedisce che l utente imponga coman
247. tamento ostacoli evitamento collisioni e correzione della traiettoria L utente pu essere assistito sia per aumentare o garantire la sua sicurezza e incolumit sia per migliorare la sua attitudine alla guida aiutandolo quindi nelle manovre che risultano a lui pi difficili Si pensi ad esempio a quanto pu essere difficoltoso per un utente afflitto da tremori o altri movimenti accidentali e involontari delle mani guidare una carrozzina elettrica lungo un corridoio Il rischio di compiere brusche sterzate che lo portino a collisioni con le pareti sarebbe elevato e un sistema di guida assistita potrebbe intervenire mantenendo una distanza di sicu rezza da un muro garantendo contemporaneamente la sicurezza dell utente e la realizzazione di una traiettoria pi fluida rispetto a quella proposta dall utente La possibilit di far muovere autonomamente la carrozzina elettrica per mette di sgravare totalmente l utente dal compito della guida Tipicamente chi usa carrozzine elettriche portato a muoversi per la maggior parte del tempo negli stessi ambienti come ad esempio l abitazione il luogo di lavoro o la scuola Una carrozzina in grado di muoversi autonomamente in que sti ambienti risparmierebbe soprattutto alle persone che trovano difficolt nella guida la fatica di compiere gli spostamenti abituali permettendo di specificare solo l obiettivo da raggiungere e g cucina sala stampa bagni etc 4 1 1 Obiettivi Pe
248. te le informazioni sul via point che si sta inseguendo 6 2 9 Gestione errori L ultimo membro che non ancora stato descritto ErrorExpert Questo membro si occupa di rilevare e gestire i malfunzionamenti del sistema mo nitorando i messaggi inviati dagli altri membri del sistema Attualmente questo membro monitora solo due tipi di messaggi MSG_FROM_HOKUYO_ERR e MSG_FROM_HOKUYO_MINDIST per controllare il corretto funzionamento de gli scanner laser Quando questo membro riceve un messaggio che indica il malfunzionamento di uno scanner laser produce un messaggio di tipo MSG_FROM_ERROR_MANAGER che contiene il campo general_error con valore 1 Quando l errore viene ripristinato ovvero viene ricevuto un messaggio di 148 Capitolo 6 Software di controllo wheelchair BG mode auto LL E Pose Info x 1599 92 y 1655 99 angle 168 625 Speed Info modulus 0 211393 rotation 14 2423 Goal specification 1000 1000 Go stop Path Execution no automatic path rho to via theta to via Figura 6 22 Interfaccia grafica del software della carrozzina tipo MSG_FROM_HOKUYO_MINDIST che indica il corretto funzionamento dello scanner laser allora viene emesso un nuovo messaggio di tipo MSG_FROM_ ERROR MANAGER con valore 0 del campo general_error Si noti che i messaggi emessi dai due sensori laser sono dello stesso tipo ma la provenienza di stinguibile in base al contenuto Grazie a quest
249. the international conference on Advances in computer entertainment technology 2007 18 M Habib Can plannig and reactive systems realize an autonomus navigation International Symposium on Robotics ISR99 11 2 1999 19 HaGi Sonic co 535 Yongsan dong Yuseong gu Daejeon Corea User s Guide Localization system StarGazer for Intelligent Robots 2007 20 L Iezzoni E McCarthy R Davis and H Siebens Mobility difficulties are not only a problem of old age Journal of General Internal Medicine 16 4 235 243 2001 21 N I Katevas N M Sgouros S G Tzafestas G Papakonstantinou P Beattie J M Bishop P Tsanakas and D Koutsouris The au BIBLIOGRAFIA 197 22 24 25 26 tonomous mobile robot SENARIO a sensor aided intelligent naviga tion system for powered wheelchairs EEE Robotics amp Automation Magazine 4 60 70 1997 H Kato and M Billinghurst marker tracking and hmd calibration for a video based augmented reality conferencing system In Proceedings of the 2nd International Workshop on Augmented Reality 1999 Y Kuno N Shimada and Y Shirai Look where you re going robotic wheelchair IEEE Robotics amp Automation Magazine 10 26 34 2003 A Lankenau O Meyer and B Krieg Bruckner Safety in robotics the Bremen Autonomous Wheelchair Advanced Motion Control pages 524 529 1998 A Lankenau and T Rofer A versatile and safe mobility assistant IEEE Robotics
250. ti del sistema realizzato basandosi sui risultati ottenuti illustrati nel Capitolo 7 Durante l analisi sono proposte alcune soluzioni che possono rafforzare i punti critici L ultima sezione presenza un possibile sviluppo futuro per il sistema di controllo della carrozzina 8 1 Conclusioni Grazie al contributo del presente lavoro si trasformata una normale car rozzina elettrica commerciale per il cui comando era disponibile un solo dispositivo in una carrozzina dalle funzionalit estese dotata di logica di controllo funzionalit di assistenza alla guida e di guida autonoma Le fasi che si sono susseguite nello sviluppo della carrozzina sono le seguenti e Scelta dei sensori e dei componenti hardware adatti alla robotizzazione della carrozzina Creazione di una struttura di supporto che una volta montata sulla carrozzina permette di alloggiare i sensori e i dispositivi da utilizzare e Progetto e implementazione di un architettura di controllo modulare che permette di realizzare funzionalit di guida assistita e di guida autonoma e che supporta l uso di pi dispositivi di comando e Test del sistema cos realizzato in ambienti controllati In particolare si introdotta la possibilit di guidare la carrozzina con diversi dispositivi di comando quali ad esempio il joypad senza fili Inol tre sono state sviluppate funzionalit di assistenza alla guida che evitano 188 Capitolo 8 Conclusio
251. ti per rilevare la velocit della carrozzina non garantiscono di cono scere l entit delle velocit in ogni momento Il contenuto del messaggio know_speed che assume sempre valore 0 Nella Sezione 6 2 5 si era introdotto il messaggio MSG_FROM_POSE_ACTUAL_SPEED che conteneva anch esso know_ speed con valore fissato a 1 La variabile know_speed molto importante per sviluppare condizioni di attivazione dei comportamenti CANDO nel controllore fuzzy stato possibile creare due comportamenti di evitamen to ostacoli uno pi complesso ed efficiente attivo quando la velocit della carrozzina nota e uno pi semplice ma meno efficiente attivo quando la velocit non nota Una coppia di messaggi analoga a quella appena presentata costitui ta da MSG_FROM_POSE_ACTUAL_POS e MSG_FROM_POSE_UNKNOW_ACTUAL_POS che comunicano la posizione della carrozzina Il metodo con cui viene calcolata la posizione della carrozzina presentato nella Sezione 6 2 6 in questo mo mento sufficiente notare come anche in questo caso la presenza del membro PoseExpert renda flessibile anche il calcolo della posizione della carrozzina Supponendo infatti di disporre di un sistema di rilevamento assoluto della posizione che operi a una frequenza lenta e di un sistema di stima della velocit della carrozzina che opera a frequenza pi elevata possibile calco lare in modo preciso la posizione della carrozzina integrando le infor
252. tione di joystick joypad e evitamento ostacoli grazie all uso dei sensori laser 6 2 5 Informazioni sul moto della carrozzina Per poter sviluppare un sistema di evitamento ostacoli efficiente necessario oltre a uno studio approfondito delle zone da utilizzare per la rilevazione de gli ostacoli e delle regole da specificare nel comportamento ObstacleAvoid MinDist conoscere le informazioni che riguardano il moto della carrozzina Queste informazioni rese disponibili dal sensore XSens Mti presentato nella Sezione 3 2 possono essere utilizzate per migliorare il sistema di evitamento ostacoli e per permettere una linea di sviluppo del sistema in varie direzioni Il membro introdotto nel sistema per la gestione dei dati provenienti dal sensore XSens MTi chiamato MTiExpert La funzione svolta da questo membro di leggere periodicamente le informazioni dal sensore MT e inviar le in un messaggio di tipo MSG_FROM_IMU Le coppie nome valore contenute in questo messaggio sono e imu_period specifica il periodo trascorso tra una lettura e l altra Tipi camente questo valore fisso a 20ms ma qualora esso dovesse cambia re sar possibile comunicarlo agli altri membri rendendo il sistema flessibile e imu_acc_Z imu_acc_y e imu_acc_z specificano le accelerazioni registrate sui tre assi in m s e imu_gyr_x imu_gyr_y e imu_gyr_z specificano le velocit di rotazione angolare in rad s rilevate intorno ai tre assi 128 Ca
253. tivo di comando Una seconda modalit prevede di interfac ciarsi direttamente al bus dati che trasporta le informazioni dal joystick al sistema di controllo dei motori Questa operazione permette rispetto alla modifica del circuito di controllo di creare dei dispositivi compatibili con tutte le carrozzine elettriche con bus dati identico e necessita di modifiche molto meno invasive alla struttura della carrozzina Per fare ci per necessario conoscere quali sono le specifiche elettriche del bus dati e il pro tocollo che governa lo scambio di informazioni 0 qualora queste non fossero disponibili effettuarne un reverse engineering Un altra possibilit per comandare la carrozzina da un computer in terfacciarsi al bus dati in modo indiretto Questo possibile intercettando i valori di tensione analogici generati dalla leva del joystick qualora questi siano facilmente accessibili Creando un circuito di interfaccia che produce tali valori di tensione possibile interfacciarsi al bus dati in modo assolu tamente trasparente in quanto il sistema di controllo rilever la presenza solo del joystick Questa soluzione riduce la generalit del circuito di in terfaccia in quanto esso risulta compatibile sono con i modelli di joystick che presentano gli stessi segnali di tensione analogica Joystick differenti che operano sullo stesso bus dati potrebbero non essere compatibili con il sistema proposto La carrozzina su cui stato effett
254. tivo e professionale nel quale ho potuto lavorare mi stato di grande aiuto grazie per la fiducia gratuitamente riposta in me e nelle mie capacit Con la conclusione di questa tesi mi considero come giunto all arrivo di una tappa ma ecco che subito un nuovo percorso si apre ancora tutto da scoprire Per il sostegno che sempre mi hanno dato e che anche in futuro so che mi daranno per la pazienza con cui mi accompagnano e per l amore che gratuitamente mi hanno donato e mi insegnano a donare voglio ringraziare i miei genitori Mario e Angela Grazie anche a mia sorella Cristina e a tutti gli altri parenti che mi hanno sempre mostrato il loro affetto Desidero ringraziare anche tutti coloro che hanno condiviso e condivide ranno pi o meno intensamente con me un tratto del mio cammino siete tutti importanti e ognuno di voi mi ha dato molto contribuendo ad arric chire e riempire ogni giorno il tesoro di esperienze che conservo gelosamente e che giorno dopo giorno acquista sempre pi peso e valore Spazio per ci tare tutti non c ma desidero ricordare gli amici dell oratorio e i don che ci accompagnano con i quali bello condividere sia i momenti spensierati che le riflessioni e le preghiere Agli amici pi stretti va un ringraziamento particolare per avermi sopportato in questi ultimi periodi in cui ero un po assente Grazie ai ragazzi del gruppo 18 19enni a cui faccio catechismo forse non lo sapete ma ricevo da voi mo
255. to a operare Nelle sezioni successive il sistema viene presentato gradualmente e la struttura del software si espande con l aggiunta di nuovi membri fino ad arrivare a una definizione globale A titolo di riferimento sono elencati tutti i membri del framework DCDT 114 Capitolo 6 Software di controllo che sono stati realizzati nell ordine in cui saranno presentati I membri so no chiamati esperti in quanto si occupano di uno specifico compito e sono MotorExpert BrianExpert JoypadExpert AudioExpert HokuyoExpert MTiExpert SequencerExpert PoseExpert SpikeExpert VisionExpert Er rorExpert e GuiExpert Si ricorda che grazie all uso di DCDT ogni esperto in grado di scam biare informazioni con gli altri con un meccanismo di publish subscribe In questa sezione analizziamo ciascun membro e le funzioni che deve svolgere per garantire il funzionamento del sistema di controllo della carrozzina e i messaggi che si attende di ricevere e produce Si noti che l identificativo nu merico dei messaggi per semplicit espositiva specificato con una stringa letterale Lo studio del software di controllo stato eseguito immaginando il suo funzionamento durante il moto della carrozzina Per chiarezza espositiva verranno presentati alcuni casi di studio che coprono tutte le funzionalit offerte dal software Si suppone d ora in avanti che il circuito di interfaccia del joystick con il PC sia in modalit automatica ovvero che il mo
256. to che la scel ta dell azione da intraprendere eseguita autonomamente dal controllore senza che l utente debba selezionare il comportamento desiderato Ad esem pio il sistema sceglier automaticamente se seguire un muro o se arrestare la carrozzina basandosi sul movimento con cui la carrozzina si avvicina al muro se la direzione di approccio perpendicolare la carrozzina si arre sta altrimenti prosegue il moto affiancandosi al muro stesso In alcune delle carrozzine funzionalit estese presentate nel Capitolo 2 la scelta della funzio nalit lasciata all utente ma facile immaginare come questa operazione possa essere difficoltosa per alcune categorie di disabili motori L uso di un controllore fuzzy reattivo ha reso possibile realizzare un sistema flessibile che reagisce in modo appropriato alle caratteristiche dell ambiente e ai comandi impartiti dall utente senza necessit di selezionare qual il comportamento desiderato Il funzionamento del sistema di assistenza alla guida pu essere ulterior mente sviluppato e perfezionato al fine di portarlo a operare correttamente in tutte le condizioni che possono presentarsi durante l uso pratico di una carrozzina elettrica Questo risultato da perseguire soprattutto tramite il perfezionamento delle regole fuzzy che governano il sistema di evitamento ostacoli senza per trascurare che la disponibilit di ulteriori informazioni come la velocit tangenzi
257. to della carrozzina sia governato dalla software di controllo stesso 6 2 1 Guida con joystick Il caso pi semplice da analizzare quello in cui si desidera guidare la car rozzina utilizzando il joystick posto sulla carrozina stessa Supponiamo per ora che l unico obiettivo sia quello di copiare i movimenti del joystick senza integrare alcuna funzionalit intelligente e g evitamento ostacoli Gli esperti che intervengono in questo contesto sono due MotorExpert e BrianExpert MotorExpert il modulo che si occupa di realizzare la comunicazione con il circuito di interfaccia ovvero in grado di leggere le posizioni della leva del joystick e di comandare la carrozzina seguendo il protocollo di comunicazione descritto nella Sezione 4 3 2 I messaggi a cui si iscrive questo membro sono quelli di tipo MSG_FROM_BRIAN che contengono il comando da attuare sulla carrozzina mentre i messaggi che invia sono MSG_FROM_ MOTION_BRIEF e MSG_FROM_MOTION_INFO MSG_FROM_BRIAN contiene le informazioni necessarie per comandare la carrozzina espresse con tre coppie nome valore e modecmd comunica il modo di funzionamento da impostare sulla car rozzina I valori ammissibili per questo campo sono solo 0 e 1 Il valore 0 indica che si intende chiedere alla carrozzina di passare alla modalit manuale 1 indica di rimanere nella modalit automatica Il 6 2 Componenti software 115 valore tipicamente sempre impostato a 1 p
258. to di accumulazione dell errore potrebbe ren dere inaffidabile il sistema di localizzazione A questo livello di astrazione in cui non si ancora fatta nessuna considerazione sul tipo di rumore che pu affliggere la stima delle matrici di rototraslazione rilevata con sistemi di fiducial marker non possibile ipotizzare quali siano le modalit migliori per scegliere l albero di copertura del grafo L algoritmo proposto per la scelta automatica dell albero di copertura illustrato nella Sezione 5 6 4 5 5 Realizzazione del sistema di localizzazione Nelle sezioni precedenti si dimostrata la realizzabilit di un sistema di posizionamento assoluto basato sull uso di fiducial marker e sono stati pre 88 Capitolo 5 Localizzazione con landmark artificiali sentati tre sistemi software di analisi di fiducial marker Prima di realizzare effettivamente il sistema di localizzazione sono state effettuate alcune consi derazioni al fine di scegliere quale strumento di gestione dei fiducial marker utilizzare Per verificare se la precisione del sistema sarebbe stata sufficien te per realizzare un sistema robusto e affidabile sono state effettuate prove preliminari in condizioni controllate 5 5 1 Scelta del sistema di gestione dei fiducial marker Nella Sezione 5 2 sono state analizzate le caratteristiche di ARToolKit AR Tag e ARToolKitPlus L uso di ARToolKit stato subito escluso in quanto tutte le funzionalit offe
259. trut tura sono solo quattro due davanti al sedile e due sulla base posizionata sulla parte posteriore del sedile In Figura 7 1 mostrata la carrozzina con la struttura di supporto realizzata e tutti i sensori e dispositivi montati i i tal 1 sperimen Capitolo 7 Risultat 158 La carrozzina elettrica Rabbit con la struttura di supporto e tutti i Figura 7 1 componenti aggiunti 7 2 Guida della carrozzina 159 7 2 Guida della carrozzina Non considerando l esecuzione di percorsi automatici la guida della carroz zina effettuabile sia tramite l uso del joystick originale che tramite l uso del joypad Considerando solo queste due semplici funzionalit possibile cominciare a commentare i risultati ottenuti estendendo successivamente il panorama d analisi a tutte le funzionalit previste La carrozzina elettrica che stata realizzata stata utilizzata durante 1 come veicolo teleguidato con il joypad il Festival della Scienza di Genova In questo contesto la carrozzina svolgeva il ruolo di guida turistica per i bambini che partecipavano all evento riproducendo anche file audio di spie gazione richiamati sempre con l uso del joypad L esperienza presso il festival della scienza ha permesso di testare approfonditamente il circuito e il soft ware di controllo che non hanno evidenziato alcun problema rimanendo in attivit anche per pi di 8 ore al giorno In q
260. u rante l esecuzione di un percorso la posizione della carrozzina diventa ignota ad esempio a causa di un movimento che porta in un area non coperta da tag l esecuzione automatica del percorso deve essere interrotta in quanto non pi possibile produrre i valori di rho_to_via_point e angle_to_via_point Per fare ci SequencerExpert imposta erecuting_path a 0 inviando dunque il solo messaggio MSG_FROM SEQUENCER EXECUTING PATH appena descritto Quando la posizione della carrozzina ritorna disponibile viene valutata la distanza tra l ultima posizione nota e quella attuale Se questa distanza inferiore a un certo valore di soglia si continua l esecuzione del percorso al trimenti si richiede automaticamente una nuova pianificazione del percorso dal punto attuale al punto di goal precedentemente specificato Un via point si considera raggiunto quando la distanza tra esso e la posi zione della carrozzina inferiore a una soglia stabilita Se esiste un via point successivo SequencerExpert continua l esecuzione del percorso utilizzando le coordinate del nuovo via point per generare i valori di rho_to_via_point e angle_to_via_point Si noti che il cambio di via point da raggiungere non notificato al controllore fuzzy in quanto esso continua a ricevere messaggi di tipo MSG_FROM_SEQUENCER_VIAPOINT_INFO ed eseguire il ciclo di controllo Se 6 2 Componenti software 139 il via point raggiunto l ultimo ovvero il punto di desti
261. uato il presente lavoro equipaggia ta con i sistemi di controllo prodotti dalla Dynamic Controls della serie DX System Le specifiche del bus dati non sono disponibili al pubblico e le richieste di informazioni per motivi di ricerca scientifica non sono state ac colte La Dynamic Controls distribuisce il modulo DX ACC4 che permette di comandare la carrozzina con 4 segnali uno per ogni direzione di marcia Questo dispositivo venduto a un prezzo piuttosto elevato alcune centina ia di euro ma le funzionalit offerte sono molto limitate in quanto non possibile regolare la velocit del comando ma solo impostare un comando digitale e g avanti indietro Inoltre il modulo DX ACC4 non nasce per essere collegato a un computer quindi comunque necessario progettare un http www dynamiccontrols com 4 3 Interfacciare la carrozzina e il computer 63 circuito di interfaccia A causa dell eccessivo costo e delle scarse funzionalita offerte da questo sistema si reso evidente che le modalit di interfaccia percorribili per interfacciare un computer e la carrozzina sono ridotte alla sostituzione dei circuiti di controllo dei motori o l interfacciamento indiretto al bus dati La prima soluzione presenta notevoli difficolt in quanto richie de il progetto e la realizzazione di un circuito di potenza per comandare i motori elettrici di una carrozzina Questa soluzione difficilmente riutiliz zabile su carrozzine diverse
262. uesti parametri in modo preciso non ba nale Una semplificazione si pu effettuare posizionando i marker secondo uno schema geometrico molto preciso Utilizzando ad esempio una griglia che mantiene i marker a distanze prefissate e orientamento noto possibile risalire facilmente alla posizione e rotazione di ogni marker rispetto a un sistema di riferimento assoluto Un approccio di questo tipo per difficil mente applicabile a un ambiente non strutturato in quanto si potrebbero verificare casi in cui la posizione dei marker deve adattarsi alla forma e alle strutture presenti nell ambiente e g una porta che passa da un locale ad un altro un livello di altezza differente del soffitto necessario dunque garantire una certa flessibilit nel posizionamento dei marker e allo stesso tempo semplicit nella creazione delle relazioni con il sistema di riferimento assoluto 5 4 Relazioni tra sistemi di riferimento 85 5 4 1 Relazioni dirette Sfruttando il sistema di fiducial marker possibile creare una catena di rela zioni successive che permette di risalire alla relazione di ciascuno di essi con il sistema di riferimento assoluto basandosi sulla conoscenza della relazione tra un solo marker di base e il sistema di riferimento assoluto eventualmen te coincidente con il sistema di riferimento solidale con il marker di base stesso Se si posizionano il marker 7 e il marker j in modo che sia possibile inquadrare entrambi in u
263. uesto contesto la carrozzina era sprovvista degli altri sensori ma dotata solo del computer di controllo del monitor touch screen e del joypad senza fili Anche l architettura software era notevolmente semplificata in quanto un numero consistente di membri non era necessario per realizzare le funzionalit richieste La carrozzina stata esposta durante il convegno Disability and advanced research e in questa occasione stato possibile testare il software di con trollo limitato alle funzioni di guida con joystick e joypad utilizzando anche la carrozzina in condizioni normali di traffico cittadino e su marcipiedi e strade per effettuare gli spostamenti tra i differenti edifici del Politecnico di Milano La buona reattivit del sistema di guida ha permesso di controllare agevolmente il moto della carrozzina per tratti anche piuttosto lunghi e su superfici sconnesse che necessitano di repentine correzioni da parte del gui datore Alcune fotografie scattate durante il trasferimento della carrozzina sono visibili in Figura 7 2 Per valutare le prestazioni offerte dal software di controllo limitato alla sola parte relativa alla guida si proposto ad alcune persone di guidare la carrozzina senza il software di controllo e con il software di controllo attivo per valutare le eventuali differenze nella risposta della carrozzina introdotte dal software di controllo All unanimit si concluso che non sono riscontrabili differenze apprezz
264. ulla quale si possono montare dispositivi e sensori e L alimentazione a batterie ben dimensionata e pu essere sfruttata per alimentare gli accessori che si vogliono aggiungere alla carrozzina 2 2 3 Funzionalit offerte Nel panorama delle carrozzina elettriche con funzionalit estese si possono individuare due grosse categorie carrozzine semiautonome e autonome In questo lavoro non saranno trattate le possibili estensioni delle carrozzina dal punto di vista meccanico come ad esempio la costruzione di apparati supplementari che diano alla carrozzina la possibilit di salire le scale o l in stallazione di sospensioni attive che garantiscano stabilit anche su terreni accidentati analizzate in 13 Le carrozzine semiautonome hanno come obiettivo principale quello di assistere l utente nella guida implementando funzioni come l evitamento ostacoli il passaggio attraverso porte o l avvicinamento a oggetti Il per corso da seguire completamente a discrezione dell utente che lo comu nica attraverso il dispositivo di comando o i dispositivi disponibile sulla carrozzina 2 2 Carrozzine elettriche e robotica mobile 11 Le carrozzine autonome offrono funzionalit molto simili a quelle soli tamente implementate nei robot autonomi L utente chiamato a specifi care una destinazione e il sistema di controllo si preoccupa di pianificare il percorso ed eseguirlo Per svolgere questo tipo di attivit
265. ulteriori dettagli sui sensori laser e per una panoramica su quelli presenti sul mercato si rimanda alla Sezione 3 1 Un ultimo metodo di rilevamento ostacoli dato dall uso della visio ne artificiale Questo comporta l uso di telecamere e software di analisi di immagini I costi sono contenuti rispetto a quelli dei sensori laser ma le difficolt maggiori sono legate ai metodi e algoritmi per il corretto ricono scimento degli ostacoli e alla rilevazione delle loro distanze Data la forte 2 2 Carrozzine elettriche e robotica mobile 13 espansione del ramo della visione artificiale probabile che nei prossimi anni si ottengano buoni risultati con questa tecnologia che al momento confi nata al riconoscimento di landmark per la localizzazione e g MAid 36 o al tracciamento dei movimenti della testa per il comando e g Intelligent Wheelchair System 23 2 2 6 Software di controllo Per poter analizzare e utilizzare le informazioni prodotte dai sensori inte grandole con la volont espressa dall utente tramite il dispositivo di comando e controllare il movimento della carrozzina prassi comune installare a bor do del veicolo un computer che svolga la funzione di centralizzatore delle informazioni e da produttore del controllo Il software di controllo pu essere sviluppato seguendo varie architetture studiate in letteratura Tra queste troviamo e Reti neurali per la riproduzione di p
266. uno degli spigoli del parallelepipedo mentre il secondo 7 parzialmen te sovrapposto al primo profilato La sovrapposizione parziale permette di regolare la lunghezza complessiva del sistema costituito dai due profilati rendendo possibile modificare facilmente la posizione dei sensori laser 8 che sono montati in fondo all ultimo tratto del profilato inseriti nel loro sup porto protettivo Il monitor 9 pu essere posizionato indifferentemente a destra o a sinistra dell utente su uno dei profilati che supportano i laser Per dare rigidit alla struttura si utilizzato un altro profilato da 490mm http www item info 4 4 Progetto di una struttura di supporto 73 Figura 4 13 Progetto CAD della struttura di supporto in profilati di alluminio 10 che collega le due barre orizzontali dei sensori laser con due profilati verticali di 120mm 11 Quest ultima parte della strutturra bloccata al supporto per i poggiapiedi anteriori della carrozzina e garantisce che la struttura non possa compiere oscillazioni che potrebbero compromettere la buona lettura delle informazioni sensoriali dei laser e della telecamera Tutti gli altri componenti che devono essere alloggiati sulla struttura sono applicabili alla struttura progettata ma il loro posizionamento non stato studiato a priori lasciando a considerazioni pratiche la scelta di po sizionamento Si noti che possibile inserire all interno del parallelepipedo ult
267. utput Per ovviare a questo problema si pensato di rimuovere la me dia dell accelerazione rilevata in un periodo di tempo in cui la carrozzina era ferma e quindi sottrarre tale valore dai dati di accelerazione utilizzati per calcolare la velocit Purtroppo per analizzando meglio i dati dell accele razione in momenti diversi in cui la carrozzina era ferma si evidenziato che le medie dell accelerazione erano molto differenti tra loro come mostrato in Figura 7 16 Questo probabilmente dovuto al fatto che la carrozzina si pu fermare con il sensore inclinato in modo leggermente diverso ogni volta ad esempio per colpa delle ruote tassellate o della conformazione del terreno L impossibilit di identificare un valore medio che rappresenta l accelerazio ne rilevata a veicolo fermo impedisce di pensare di correggere il metodo di stima della velocit semplicemente sottraendo l accelerazione media a ogni rilevazione Uno studio pi approfondito del sensore e un analisi metodica dei dati da esso prodotti potrebbe portare a creare un metodo di stima del la velocit basato sull integrazione nel tempo dei dati dell accelerazione pi preciso ed efficiente Si deciso di non utilizzare l informazione relativa alla velocit di mo vimento della carrozzina ma solo quella relativa alla velocit rotazionale Questo impedisce di sviluppare un controllo preciso della carrozzina in quanto non possibile conoscere a ch
268. vati dal sensore XSens MTi mentre la velocit rotazionale fornita direttamente dal sensore stesso L integrazione nel tempo di dati rumorosi pu diverge re ovvero produrre valori inesatti che crescono anche indefinitamente Per valutare se fosse possibile utilizzare la velocit stimata per effettuare il con trollo si sono registrati e successivamente analizzati i dati di velocit in un tempo di circa 20 minuti Il risultato ottenuto mostrato in Figura 7 13 ed evidente che la velocit stimata diverge rapidamente Infatti considerando che all inizio e alla fine della registrazione la carrozzina era ferma e che in numerosi altri momenti stata fermata si dovrebbero notare dei tratti in cui la velocit scende verso zero mentre questo non accade mai In Figura 7 J14l riportata la velocit rilevata nei primi 10 secondi della registrazione precedente in cui la carrozzina era ferma evidente il trend di crescita della velocit Le cause della deriva sono da ricercarsi nei dati di partenza ovvero nelle accelerazioni rilevate dal sensore XSens MTi In Figura 7 15 sono riportate 7 4 Guida semiautonoma 169 Tipo di dato Insiemi fuzzy 4 VICINO A MEDIO x MINDISTOST_LEFTO_RIGHT7 A 3901500 3003 1000 4 VICINO A MEDIO gt gt MINDISTOST_LEFT1_RIGHT6 30027900 a PORTONE VICINO A MEDIO
269. xpert run duty a ogni sua attivazione una riga del file di log corrispondente risulta 1204797883 582073 Brian Expert run duty 156 Capitolo 6 Software di controllo Capitolo 7 Risultati sperimentali In questo capitolo sono analizzati i risultati ottenuti sia dal punto di vista della costruzione della struttura che dal punto di vista del comportamento del controllore nello svolgere i compiti di assistenza alla guida e di guida autonoma 7 1 Struttura di supporto La struttura di supporto stata realizzata come si era ipotizzato in fase di progetto e si rivelata adatta agli scopi prefissati Infatti risultato sempli ce e agevole montare tutti i componenti previsti In particolare si scelto di posizionare il computer sulla base della struttura in profilati d alluminio e di utilizzare una delle mensole posizionate a met altezza del parallelepipedo per alloggiare il sensore XSens MTi Tutti gli altri componenti sono stati montati nelle posizioni previste nella progettazione come ad esempio i laser in posizione frontale all altezza delle ginocchia dell utente e la telecamera ri volta verso il soffitto posta nel punto pi alto della struttura Le scanalature dei profilati hanno agevolato il posizionamento dei cavi necessari offrendo una sede naturale in cui farli scorrere Anche le procedure che permettono di montare e smontare la struttura sulla carrozzina sono molto semplici infatti i punti di fissaggio della s
270. zzata infatti sufficiente far ricevere al mem bro BrianExpert i messaggi di tipo MSG_FROM_POSE_ACTUAL_SPEED I valori speed_angle e speed_module vengono fuzzyficati con opportuni insiemi fuz ZY e g ROTVELOCEORARIA ROTVELOCEANTIORARIA ROTVELOCEORARIA e VELOCE MEDIO LENTO FERMO e una volta definiti i predicati associati pos sibile realizzare comportamenti pi complessi Ad esempio considerando l esempio utilizzato nella Sezione 6 2 4 si potranno aggiungere le seguenti condizioni AND OstacoloVicinoFrontale AND DirAvanti VelAttualeElevata 130 Capitolo 6 Software di controllo gt amp DEL fwrwcmd ANY fwrwcmd VFASTRW AND OstacoloVicinoFrontale AND DirAvanti VelAttualeBassa gt amp DEL fwrwcmd ANY fwrwcmd STEADY I predicati VelAttualeBassa e VelAttualeElevata si riferiscono al valore della velocit tangenziale calcolato Un altra estensione introdotta che riguarda il solo membro BrianEx pert consiste nel considerare la velocit sia attuale che precedente Il confronto tra le due velocit rotazionali o tangenziali permette di sti mare come varia nel tempo la velocit e regolare di conseguenza l azio ne di controllo Ad esempio definendo i predicati VelPrecedenteBassa e VelPrecedenteElevata possibile creare ulteriori regole di controllo per migliorare il comportamento dinamico della carrozzina Allo stesso modo si possono utilizzare predicati relativi alla
Download Pdf Manuals
Related Search
Related Contents
取扱説明書 - 株式会社トヨトミ ピンホール探知器 TRD 簡易震度計システム 【グループ監視】 各都道府県衛生主管部(局)長 殿 厚生労省医政局指導課 Manual de Instruções - VOLVO S40 TDK ST600 WEBT@LKER 100 - Prestasicurezza.com Copyright © All rights reserved.
Failed to retrieve file