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