A.Dionisi Thesis

5,952 views
5,741 views

Published on

Alessandro Dionisi Thesis on mobile robot exploration using ZigBee devices

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,952
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A.Dionisi Thesis

  1. 1. ` Facolta di Ingegneria Tesi di Laurea Specialistica in Ingegneria Informatica Esplorazione per Robot Mobili basata su Dispositivi ZigBee Alessandro Dionisi Relatore Controrelatore Prof. Luca Iocchi Prof. Roberto Beraldi CorrelatoreDott. Ing. Vittorio Amos Ziparo Anno Accademico 2006/2007
  2. 2. ` Facolta di Ingegneria Tesi di Laurea Specialistica in Ingegneria Informatica Esplorazione per Robot Mobili basata su Dispositivi ZigBee Alessandro Dionisi Relatore Controrelatore Prof. Luca Iocchi Prof. Roberto Beraldi CorrelatoreDott. Ing. Vittorio Amos Ziparo Anno Accademico 2006/2007
  3. 3. “Debugging is twice as hard as writing the code in the first place. Therefore, if youwrite the code as cleverly as possible, you are, by definition, not smart enough to debugit.” Brian W. Kernighan
  4. 4. Ringraziamenti Questo lavoro di tesi ` nato innanzitutto grazie alla disponibilit` del Prof. Beraldi, e ache appresi i miei interessi per le tecnologie wireless ha saputo indirizzarmi verso illaboratorio SIED. Ringrazio ovviamente il mio relatore, il Prof. Iocchi, per avermi datola possibilit` di affrontare un progetto stimolante e per avermi indicato sempre la giusta asoluzione ai problemi che continuamente si sono presentati. La mia riconoscenza vainoltre al Prof. Nardi per avermi accolto come tesista nel laboratorio SIED. Ringrazio tutti i dottori, dottorandi e ingegneri del laboratorio, tra cui Alberto, Die-go, Domenico, Gabriele, Gianpaolo, Giuseppe, Stefano, per i loro preziosi suggerimentie in particolare Arrigo, Daniele e Vittorio, per il costante supporto fornito durante tuttoil periodo di tesi. ` E doveroso da parte mia ringraziare tutti i colleghi tesisti Gianluca, Giuliano, Jo˜o, aLuigi, Stefano, Valerio, per i loro consigli e per aver reso meno pesanti le giornatetrascorse al SIED. La mia riconoscenza va inoltre ai ragazzi dell’RFID-Lab, in particolareal Prof. Medaglia e a Leonardo, per avermi riservato parte del loro tempo. Un ringraziamento speciale ` destinato a Michela, per essermi stata cos` vicino, con e ıil cuore e con la mente, in questo periodo impegnativo della mia vita. Desidero infine rigraziare tutta la mia famiglia, in particolare i miei genitori Giorgioe Cinzia, mio fratello Francesco, i miei nonni Franco e Gina per avermi supportatopsicologicamente e moralmente durante tutti questi splendidi anni all’universit`. a ii
  5. 5. IndiceRingraziamenti iiElenco delle figure viiElenco delle tabelle ixAbbreviazioni xIntroduzione 1I Concetti fondamentali e stato dell’arte 71 Robot per l’esplorazione autonoma 8 1.1 Possibili scenari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Tipi di robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.1 Robot del laboratorio SIED . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Moduli funzionali di un robot esploratore . . . . . . . . . . . . . . . . . . 12 1.3.1 Sensori e tecniche per l’esplorazione . . . . . . . . . . . . . . . . . 13 1.3.1.1 Odometria . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3.1.2 Sensori inerziali . . . . . . . . . . . . . . . . . . . . . . . 14 1.3.1.3 Sonar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3.1.4 Laser scanner . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.3.1.5 GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.1.6 Landmark . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.2 Localizzazione e mappe . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.2.1 Feature maps . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.2.2 Occupancy grid . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.2.3 Mappe topologiche . . . . . . . . . . . . . . . . . . . . . . 19 1.3.3 Navigazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3.3.1 Pianificazione . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4 Esplorazione autonoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.5 Simulatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5.1 Player/Stage/Gazebo . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.5.2 USARsim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.6 Il framework SPQR-RDK . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 iii
  6. 6. Contenuto iv 1.6.1 Agenti e moduli . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.6.2 Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.6.3 Concorrenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.6.4 Comunicazioni tra agenti . . . . . . . . . . . . . . . . . . . . . . . 25 1.6.5 Strumenti di supporto . . . . . . . . . . . . . . . . . . . . . . . . . 252 Localizzazione basata su dispositivi wireless 27 2.1 Fenomeni nella propagazione radio . . . . . . . . . . . . . . . . . . . . . . 29 2.1.1 Attenuazione dello spazio libero . . . . . . . . . . . . . . . . . . . . 29 2.1.2 Assorbimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.1.3 Rifrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.1.4 Scattering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.1.5 Diffrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.1.6 Multipath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.2 Modelli di propagazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3 Il processo di localizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4 Metodi di localizzazione range-based . . . . . . . . . . . . . . . . . . . . . 36 2.4.1 Time Of Arrival . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.2 Angle Of Arrival . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.3 Received Signal Strenght . . . . . . . . . . . . . . . . . . . . . . . 37 2.4.3.1 RSS fingerprinting . . . . . . . . . . . . . . . . . . . . . . 38 2.5 Metodi di localizzazione range-free . . . . . . . . . . . . . . . . . . . . . . 403 Lo standard ZigBee 42 3.1 Le motivazioni della scelta . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.2 La nascita dello standard . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.3 Caratteristiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.4 Lo stack ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.4.1 Lo strato PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.4.1.1 Modulazione e spreading . . . . . . . . . . . . . . . . . . 47 3.4.1.2 Coesistenza con interferenze . . . . . . . . . . . . . . . . 48 3.4.1.3 Primitive offerte dallo strato PHY . . . . . . . . . . . . . 49 3.4.2 Lo strato MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.4.2.1 Tipi di dispositivi IEEE 802.15.4 . . . . . . . . . . . . . . 50 3.4.2.2 Le modalit` di accesso al canale . . a . . . . . . . . . . . . 51 3.4.2.3 Indirizzamento . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.2.4 Primitive offerte dallo strato MAC . . . . . . . . . . . . . 52 3.4.3 Lo strato NWK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4.3.1 Tipi di dispositivi ZigBee . . . . . . . . . . . . . . . . . . 53 3.4.3.2 Topologie di rete . . . . . . . . . . . . . . . . . . . . . . . 54 3.4.3.3 Algoritmi di routing . . . . . . . . . . . . . . . . . . . . . 55 3.4.3.4 Sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4.3.5 Primitive offerte dallo strato NWK . . . . . . . . . . . . 56 3.4.4 Lo strato applicazione . . . . . . . . . . . . . . . . . . . . . . . . . 57
  7. 7. Contenuto vII Sperimentazione, progettazione e implementazione 594 Analisi della qualit` del segnale in ambienti indoor/outdoor a 60 4.1 La piattaforma hardware/software di riferimento . . . . . . . . . . . . . . 61 4.1.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.1.1.1 Antenna . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.1.2 Test di orientamento dell’antenna . . . . . . . . . . . . . . . . . . . 63 4.1.3 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.1.4 Link Quality Indicator (LQI) . . . . . . . . . . . . . . . . . . . . . 64 4.2 Rilevazioni outdoor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.2.1 Dati numerici rilevati . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.3 Rilevazioni indoor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3.1 Test statici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3.2 Test dinamici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3.3 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.3.4 Dati numerici rilevati . . . . . . . . . . . . . . . . . . . . . . . . . 715 Esplorazione guidata dalla qualit` del segnale a 73 5.1 Concetti preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.1.1 Sistema di riferimento . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.1.2 Esplorazione mediante frontiere . . . . . . . . . . . . . . . . . . . . 75 5.1.3 Configurazione dell’agente . . . . . . . . . . . . . . . . . . . . . . . 76 5.2 Esplorazione guidata dal LQI - Descrizione dell’algoritmo . . . . . . . . . 76 5.2.1 Calcolo degli score delle frontiere . . . . . . . . . . . . . . . . . . . 79 5.2.1.1 Un esempio di esecuzione . . . . . . . . . . . . . . . . . . 82 5.3 Possibili scenari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.1 Rendezvous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.2 Rescue robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.3.3 Deployment di reti ad-hoc . . . . . . . . . . . . . . . . . . . . . . . 85 5.3.4 Sorveglianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866 Sperimentazione 87 6.1 Applicazione per i dispositivi ZigBee . . . . . . . . . . . . . . . . . . . . . 87 6.2 Applicazione per SPQR-RDK . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.2.1 Modulo FrontierFinder . . . . . . . . . . . . . . . . . . . . . . . . . 89 6.2.2 Modulo ZigbeeInterface . . . . . . . . . . . . . . . . . . . . . . . . 90 6.2.3 Modulo ZigbeeExplorator . . . . . . . . . . . . . . . . . . . . . . . 92 6.2.4 Moduli di navigazione . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.2.5 Moduli di localizzazione e mapping . . . . . . . . . . . . . . . . . . 92 6.3 Simulazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 6.4 Esperimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.4.1 Esperimenti in simulazione . . . . . . . . . . . . . . . . . . . . . . 93 6.4.2 Esperimenti in ambiente reale . . . . . . . . . . . . . . . . . . . . . 94III Risultati e conclusioni 977 Conclusioni e sviluppi futuri 98
  8. 8. Contenuto vi 7.1 Sintesi dei risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.2 Sviluppi futuri ed estensioni . . . . . . . . . . . . . . . . . . . . . . . . . . 99IV Appendici 100A Piattaforma Freescale MC13213 101Bibliografia 103
  9. 9. Elenco delle figure 1.1 Alcuni robot esploratori . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Alcuni robot mobili presenti nel laboratorio SIED . . . . . . . . . . . . . . 11 1.3 Schematizzazione di un robot mobile . . . . . . . . . . . . . . . . . . . . . 12 1.4 Sonar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5 Laser scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6 Alcuni tipi di mappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.7 Simulatori per robot mobili . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.1 Fenomeno di rifrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2 Fenomeno di diffrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3 Il procedimento di trilaterazione . . . . . . . . . . . . . . . . . . . . . . . 37 2.4 Impronte RSS nel sistema RADAR [BP00] . . . . . . . . . . . . . . . . . . 39 2.5 Alcuni approcci di localizzazione range-free . . . . . . . . . . . . . . . . . 40 3.1 Bitrate e range trasmissivi di ZigBee rispetto ad altri standard wireless . . 45 3.2 Lo stack ZigBee completo . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3 Spreading e modulazione in 802.15.4 . . . . . . . . . . . . . . . . . . . . . 47 3.4 Coesistenza di ZigBee con 802.11 . . . . . . . . . . . . . . . . . . . . . . . 48 3.5 Organizzazione in SAP di ZigBee . . . . . . . . . . . . . . . . . . . . . . . 50 3.6 Accesso al mezzo con beacon . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.7 Accesso al mezzo senza beacon . . . . . . . . . . . . . . . . . . . . . . . . 52 3.8 I SAP dello strato MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.9 Topologie di rete ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.10 I SAP dello strato NWK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.11 Concetto di binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.1 La Sensor Reference Board (SRB) basata sul SiP MC13213 di Freescale . 61 4.2 Struttura ad F-Antenna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.3 Test di orientamento dell’antenna . . . . . . . . . . . . . . . . . . . . . . . 64 4.4 Setup per i test outdoor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.5 Andamento del LQI con la distanza (media e varianza) . . . . . . . . . . . 66 4.6 Distribuzione dei valori del LQI per ogni intervallo . . . . . . . . . . . . . 67 4.7 Posizioni e rilevazioni di LQI nell’abitazione . . . . . . . . . . . . . . . . . 69 4.8 Test dinamici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.9 Risultati dei test dinamici . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.10 Posizioni e valori delle rilevazioni LQI al DIS . . . . . . . . . . . . . . . . 72 5.1 Sistema di riferimento per il robot . . . . . . . . . . . . . . . . . . . . . . 75 5.2 Esplorazione basata su frontiere . . . . . . . . . . . . . . . . . . . . . . . . 75 vii
  10. 10. Elenco delle figure viii 5.3 Discretizzazione dell’ambiente e matrice LQI . . . . . . . . . . . . . . . . 77 5.4 Macchina a stati dell’algoritmo di esplorazione . . . . . . . . . . . . . . . 78 5.5 La mappa in modalit` DEEP SCAN . . . . . . . . a . . . . . . . . . . . . . . . 79 5.6 Grafico della funzione ∆ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.7 Confronto tra Fdist e lunghezza del path . . . . . . . . . . . . . . . . . . . 82 5.8 Calcolo degli score per le frontiere . . . . . . . . . . . . . . . . . . . . . . 83 6.1 Configurazione dell’applicazione ZigBee . . . . . . . . . . . . . . . . . . . 88 6.2 Diagramma delle classi del sistema . . . . . . . . . . . . . . . . . . . . . . 89 6.3 Le frontiere trovate con l’ausilio della distance map . . . . . . . . . . . . . 90 6.4 Generazione della mappa statica per il LQI . . . . . . . . . . . . . . . . . 91 6.5 Simulazione dell’algoritmo in Player/Stage . . . . . . . . . . . . . . . . . . 93 6.6 Esecuzione dell’algoritmo in un’abitazione . . . . . . . . . . . . . . . . . . 94 6.7 Esecuzione dell’algoritmo nel primo piano del DIS . . . . . . . . . . . . . 95 6.8 Esecuzione dell’algoritmo nello scenario del labirinto . . . . . . . . . . . . 95 6.9 La mappa generata nell’esplorazione . . . . . . . . . . . . . . . . . . . . . 96 6.10 Sperimentazione dell’algoritmo in ambiente reale . . . . . . . . . . . . . . 96 A.1 Schema a blocchi della piattaforma MC13213 . . . . . . . . . . . . . . . . 101 A.2 Grafico potenza ricevuta/riportata . . . . . . . . . . . . . . . . . . . . . . 102
  11. 11. Elenco delle tabelle 1.1 Parametri tipici di un laser scanner . . . . . . . . . . . . . . . . . . . . . . 16 2.1 Valori del parametro N nell’ITU Model . . . . . . . . . . . . . . . . . . . 34 2.2 Valori del parametro Pf (n) nell’ITU Model . . . . . . . . . . . . . . . . . 34 2.3 Coefficienti del Log-Distance Path-Loss Model . . . . . . . . . . . . . . . . 35 3.1 Suddivisione della banda ZigBee . . . . . . . . . . . . . . . . . . . . . . . 46 4.1 Misurazioni LQI in ambienti outdoor . . . . . . . . . . . . . . . . . . . . . 67 4.2 Misurazioni LQI in una abitazione . . . . . . . . . . . . . . . . . . . . . . 71 A.1 Dati tecnici della piattaforma ZigBee MC13213 di Freescale . . . . . . . . 101 ix
  12. 12. Abbreviazioni AO Application Object AOA Angle Of Arrival APL APplication Layer APS APplication support Sublayer BER Bit Error Rate BPSK Binary Shift Phase Keying CCA Clear Channel Assessment CSMA-CA Carrier Sense Multiple Access with Collision Avoidance DSSS Direct Sequence Spread Spectrum ED Energy Detection FFD Full Function Device ISM Industrial Scientific and Medical LoS Line of Sight LR-WPAN Low-rate Wireless Personal Area Network LQI Link Quality Indicator MAC Livello di accesso al mezzo trasmissivo MCPS MAC Common Part Sublayer MLME MAC Layer Management Entity NCB Network Coordinator Board NLDE Network Layer Data Entity NLME Network Layer Management Entity NWK Livello di rete O-QPSK Offset-Quadrature Phase Shift Keying PAN Personal Area Network PAN-ID Personal Area Network-IDentifier PD PHY Data x
  13. 13. Abbreviazioni xi PHY Livello fisico PIB PAN Information Base PLME PHY Layer Management Entity RFD Reduced Function Device RSS Received Signal Strenght SAP Service Access Point SiP System-in-Package SLAM Simultaneous Localization And Mapping SoC System-on-Chip SRB Sensor Reference Board SSP Security Service Provider TDOA Time Difference Of Arrival TOA Time Of Arrival USAR Urban Search And Rescue WSN Wireless Sensor Network ZC ZigBee Coordinator ZDO ZigBee Device Object ZED ZigBee End Device ZR ZigBee Router
  14. 14. Ai miei genitori, per avermi dato questa opportunit`... a xii
  15. 15. IntroduzioneLa possibilit` di creare reti a basso costo e ad alta densit` come le Wireless Sensor a aNetwork (WSN) ha introdotto scenari applicativi prima irrealizzabili, che vanno dal mo-nitoraggio di impianti alla domotica. Le loro capacit` di mobilit` ed auto-organizzazione, a acon la caratteristica, inoltre, di non dipendere da un’infrastruttura di rete fissa, le hannorese ormai l’icona dell’Ubiquitous Computing. La funzione principale di una WSN ` quella di riportare eventi relativi all’ambiente econtrollato, oltre a trasportare dati e informazioni provenienti dai molteplici sensori pre-senti. In letteratura, tuttavia, ` sempre pi` frequente l’idea di aggiungere funzionalit` e u adifferenti dal controllo e dal monitoraggio; si pensi ad esempio al contributo informativoapportato dalla localizzazione di un sensore, oltre al valore della grandezza fisica misu-rata. In definitiva, per un utente ` importante sapere, sia che una soglia di attenzione ` e estata superata, sia in quale punto preciso della rete, dato che informazioni non associatealla loro localizzazione potrebbero essere prive di significato. Le possibilit` offerte dalle WSN e dalle capacit` di localizzare dei nodi al loro interno a a[MFA07], le rendono appetibili anche nel campo della robotica, ad esempio per l’impiego `su robot mobili. E facile immaginare come informazioni sulla localizzazione di punti diinteresse possano divenire di estrema importanza in problemi di SLAM (SimultaneousLocalization and Mapping) [DWB06a, DWB06b] oppure per diminuire i tempi nellaricerca di oggetti o zone particolari. Si comprende inoltre, quanto ci` sia di interesse oprimario in ambienti indoor (industrie, uffici, abitazioni), o dove comunque non c’` la epossibilit` di utilizzare altri sistemi di posizionamento (come ad esempio GPS). a Attualmente, l’esplorazione rappresenta la tecnica principale mediante il quale pos-sono essere risolti i problemi di ricerca [BFDW03, BCC+ 04] in ambienti non noti apriori, in quanto gradualmente l’area sconosciuta viene ridotta, fino a permettere ditrovare l’obiettivo. Se ne deduce facilmente che, se non si hanno informazioni ag-giuntive sulla localizzazione dell’obiettivo, si procede praticamente per tentativi, conuna ricerca cieca. Effettivamente, questa ` la metodologia seguita da molti approcci e[Yam98, BMF+ 00, KPN, MTK, SB03] che si basano sul concetto di frontiera di esplo-razione [Yam97], ovvero la zona di confine tra lo spazio noto e quello inesplorato. Intali sistemi, l’esplorazione procede ad ogni passo visitando una frontiera, diminuendo in 1
  16. 16. Introduzione 2questo modo lo spazio di ricerca. Il problema principale, risiede nel fatto che la selezionedella frontiera viene effettuata casualmente o al massimo con strategie greedy (scegliendoad esempio quella pi` vicina al robot), dato che in molti casi non si hanno altre sorgenti uinformative per procedere diversamente. Lo scopo di questa tesi ` l’integrazione di sistemi di robotica mobile con gli strumenti ee le potenzialit` offerte dalle WSN, mediante un’applicazione di supporto alla localizza- azione. L’approccio utilizzato in questo lavoro di tesi sfrutta le informazioni sulla qualit` adel segnale radio (Link Quality Indicator ) ricevuto dai nodi della WSN, installati a bordodel robot, per guidarne l’esplorazione al fine di raggiungere zone di interesse segnalate daaltrettanti dispositivi. Come vedremo, alla rete possono appartenere sia i robot, sia altrinodi che possono segnalare oggetti o essere rilasciati durante l’esplorazione stessa, conla funzione di landmark [SN04]. I dispositivi selezionati per la realizzazione del sistemaseguono lo standard per le LR-WPAN (Low-Rate Wireless Personal Area Network), Zig-Bee. La scelta di questa tecnologia ` avvenuta dopo un’ampia fase di studio, effettuata epresso il laboratorio RFID-Lab, dell’Universit` di Roma “Sapienza”, in cui sono stati aconsiderati attentamente i requisiti del sistema da realizzare. Occorre notare che, in questo lavoro, non si cerca di risolvere un problema di loca-lizzazione wireless assoluta, affrontato gi` ampiamente in altri lavori [Pat05, BGGT07, aSKOM06, PHP+ 03, BP00, HHB+ 03] e peraltro di non facile soluzione se si considera-no ambienti indoor, a causa di fenomeni fisici come attenuazione e multipath [Rap01].Tali considerazioni hanno richiesto un lungo periodo di sperimentazione, in cui sonostati realizzati test sia in ambienti outdoor che indoor, orientati a dimostrare quantogi` noto in letteratura e a far comprendere le modalit` con cui affrontare un problema a adi localizzazione basato su dispositivi wireless. L’approccio proposto tenta di applicarei meccanismi alla base della localizzazione, al problema dell’esplorazione, presentandosicome un algoritmo in grado di guidare il robot verso l’obiettivo della ricerca, medianteun’euristica che si basa sul principio elementare per cui la potenza del segnale decrescecon la distanza. In questo modo, anche se ` difficile ricavare esattamente la distanza che esepara trasmettitore e ricevitore, ` possibile stimare qualitativamente quanto si ` vicini e ealla sorgente del segnale. Di conseguenza, la ricerca che prima era cieca, si trasforma inricerca informata, con il vantaggio non indifferente che per la scelta della prossima fron-tiera da esplorare, il robot avr` a disposizione qualcosa in pi` di una semplice strategia a ugreedy. La possibilit` di effettuare un’esplorazione guidata aiuta, oltre che a diminuire i atempi di ricerca, anche ad aumentare l’autonomia energetica del robot, evitando zonedell’ambiente non rilevanti ai fini della missione. Uno degli scenari mediante il qualesi pu` comprendere l’utilit` dell’idea presentata, ` l’impiego del sistema in problemi di o a eSearch and Rescue [HSI+ 99], in cui i robot mobili forniscono il loro supporto a squadredi soccorritori umani, in operazioni di ricerca e salvataggio in ambienti che hanno subito
  17. 17. Introduzione 3 `catastrofi o devastazioni, ad alto rischio per i soccorritori stessi. E facile immaginarecome informazioni sulla localizzazione di punti di interesse (ostacoli, feriti, punti diraccolta, altri robot) possano divenire di estrema importanza per diminuire i tempi diesplorazione di aree devastate, con la conseguenza di aumentare la probabilit` di salvare aanche vite umane. Inoltre, considerate le possibilit` di miniaturizzazione che possono aessere raggiunte nella produzione di dispositivi ZigBee, possiamo pensare ad uno scenarioin cui ogni persona pu` indossare un ricevitore e che, nel caso di incidenti o devastazioni, oesso possa essere interrogato, in modo da facilitare il raggiungimento della vittima stessa.Ad esempio, tali situazioni possono verificarsi in impianti industriali ad alto rischio, dovesono potenzialmente possibili incendi, crolli strutturali o emissioni di sostanze tossiche. Altri possibili esempi di applicazione, in cui l’approccio pu` portare i suoi vantaggi, osono il problema del rendezvous [DR97, ZLV07] tra robot, il deployment di reti ad-hoc in situazioni di emergenza [RB05, HMS02] e alcuni scenari di sorveglianza robotica[HBB+ 00]. Questa tesi si focalizza sul problema base del raggiungimento da parte di un robotmobile equipaggiato con un dispositivo wireless ZigBee di un punto di interesse dove ` epresente un altro di questi dispositivi, non in movimento. La soluzione di tale problema,per motivi di complessit`, non considera un ambiente multi-robot, ma ` sicuramente a eestendibile a scenari di tale tipologia. Il sistema ` stato implementato in C++, su piat- etaforma Unix, sotto forma di moduli indipendenti per il framework per robot mobiliSPQR-RDK [FGI05]. La tesi ` stata sviluppata presso il laboratorio SIED (Sistemi eIntelligenti per le Emergenze e la Difesa civile), nato dalla collaborazione tra l’IstitutoSuperiore Antincendi ed il Dipartimento di Informatica e Sistemistica (DIS) dell’Univer-sit` di Roma “Sapienza”, con l’obiettivo di svolgere attivit` di ricerca volte allo sviluppo a adi metodologie, tecniche e strumenti prototipali da utilizzare in operazioni di soccorso.Problematiche affrontateLa realizzazione di questo lavoro mi ha permesso di studiare diverse problematiche,inerenti sia al campo delle reti di sensori che della robotica mobile. In particolare sonostati affrontati i seguenti temi: • Sperimentazione e selezione, presso l’RFID-Lab, di una piattaforma hardware/- software per WSN, al fine di individuarne una idonea all’implementazione di un sistema di localizzazione wireless. • Studio del protocollo per LR-WPAN ZigBee, in particolare gli strati MAC, rete e applicazione, in modo da acquisire i primi strumenti concettuali e applicativi per progettare e implementare piccole applicazioni.
  18. 18. Introduzione 4 • Analisi delle prestazioni trasmissive dell’hardware selezionato, in ambienti indoor, outdoor e in condizioni statiche e dinamiche, con lo scopo di comprendere le potenzialit` da sfruttare per effettuare localizzazione. a • Studio della letteratura riguardante i diversi approcci alla localizzazione wireless e all’esplorazione per robot mobili, in modo da ottenere una visione completa di quanto gi` realizzato e avere solidi concetti base da cui iniziare il lavoro. a • Progettazione di un algoritmo per l’esplorazione di ambienti indoor semistrutturati, basato sulla qualit` del segnale ricevuto da dispositivi ZigBee. Tutto ci` a seguito a o dei risultati ottenuti in fase di test dei dispositivi in trasmissione. • Modifica di alcuni moduli del kernel, per garantire l’interfacciamento dei dispositivi ZigBee anche su sistemi operativi Unix, in quanto originariamente erano presenti solo driver funzionanti per Windows. • Implementazione dell’algoritmo e dei componenti di interfaccia verso il dispositivo ZigBee in linguaggio C++, sotto forma di moduli software indipendenti per il framework SPQR-RDK. • Test del sistema in simulazione, nell’ambiente Player/Stage, e in ambiente reale, sui robot mobili del laboratorio SIED, con lo scopo di dimostrare i risultati conseguiti e i vantaggi introdotti con l’approccio scelto.Risultati conseguitiLa grande quantit` di dati sperimentali, raccolti durante l’analisi delle prestazioni tra- asmissive dei dispositivi, in ambienti indoor e outdoor, ha permesso di ritrovare i risultatiteorici noti in letteratura e, allo stesso tempo, trasformare il problema iniziale di localiz-zazione wireless assoluta in un nuovo approccio all’esplorazione per robot mobili, basatosulla qualit` del segnale ricevuto dai dispositivi di una WSN. a Le sperimentazioni effettuate, sia in simulazione che in ambiente reale, dimostranol’efficacia dell’approccio proposto. L’aggiunta dell’informazione sulla qualit` del segnale, aconsente di risolvere i problemi di ricerca in modo informato, evitando l’esplorazionedi zone dell’ambiente eccessivamente distanti dall’obiettivo. La scelta delle frontiereviene effettuata in base alla vicinanza con la sorgente del segnale, sostituendo strategiegreedy che spesso non creano vantaggi considerevoli. In questo modo, ` sicuramente epossibile diminuire i tempi necessari all’individuazione di punti di interesse nella mappa eincrementare notevolmente l’autonomia energetica del robot utilizzato per l’esplorazione. Ovviamente, l’euristica pensata pu` essere raffinata, tenendo in considerazione anche oinformazioni di natura topologica sull’ambiente o elaborando le variazioni del segnale ri-cevuto rispetto al percorso eseguito dal robot (considerando, in alcuni istanti, il gradiente
  19. 19. Introduzione 5del LQI). L’idea presentata pu` inoltre essere estesa a scenari multi-robot, agevolando ola soluzione di problemi come il rendezvous [DR97] o il coordinamento durante alcunefasi dell’esplorazione multiagente [ZKNN07].Traccia dell’esposizioneL’esposizione ` organizzata come segue: e • Capitolo 1: Presentazione di tematiche relative all’esplorazione di robot mobili e dei componenti hardware/software necessari per l’esplorazione autonoma. Ven- gono descritti i concetti e gli strumenti della robotica disponibili per sviluppare l’approccio descritto, sottolineando alcune tecniche per l’esplorazione autonoma. • Capitolo 2: Introduzione agli approcci per la localizzazione wireless e descrizione dei fenomeni fisici che influenzano le trasmissioni wireless. Lo studio effettuato, ha permesso di comprendere in dettaglio i problemi da tenere in considerazione nella realizzazione di un sistema di localizzazione. • Capitolo 3: Descrizione dello standard per le LR-WPAN, ZigBee, focalizzando l’attenzione sulle funzionalit` dello stack che sono risultate di interesse per nel- a la valutazione e la successiva implementazione delle applicazioni. Tale studio ha permesso di avere le prime indicazioni da cui partire per risolvere un problema di lo- calizzazione, ottenute analizzando le informazioni restituite dalle primitive relative alla qualit` del segnale (Link Quality Indicator ). Sono inoltre riportate le motiva- a zioni che hanno portato alla selezione di dispositivi ZigBee per la realizzazione di questo lavoro di tesi. • Capitolo 4: Illustrazione di esperimenti indoor/outdoor sulla variazione della qua- lit` del segnale e presentazione della piattaforma hardware selezionata per gli espe- a rimenti. Il capitolo contiene i numerosi test trasmissivi, effettuati al fine di deter- minarne l’idoneit` alla realizzazione di un sistema di localizzazione. La grande a quantit` di dati raccolti ci ha permesso, non solo di verificare in parte alcuni a concetti teorici sulle trasmissioni wireless, ma anche di definire gradualmente il problema reale che si voleva risolvere. • Capitolo 5: In questo capitolo viene illustrata l’idea dominante di questa tesi, ov- vero l’uso dell’informazione sulla qualit` del segnale per effettuare una esplorazione a guidata. Viene fatta una descrizione approfondita dell’algoritmo euristico ideato, motivando le scelte effettuate nella sua progettazione. Vengono inoltre citati alcuni scenari significativi di applicazione.
  20. 20. Introduzione 6 • Capitolo 6: Descrizione delle scelte implementative, sia per quanto riguarda l’appli- cazione caricata sui dispositivi ZigBee, sia per i moduli SPQR-RDK in esecuzione sul robot. Viene inoltre presentata la sperimentazione dell’algoritmo in ambiente simulato Player/Stage e sul robot reale “Rotolotto”. • Capitolo 7: Il capitolo illustra i risultati conseguiti, considerando le possibili estensioni applicabili al sistema realizzato.
  21. 21. Parte IConcetti fondamentali e stato dell’arte 7
  22. 22. Capitolo 1Robot per l’esplorazioneautonomaI robot sono impiegati nell’industria fin dal 1961, quando la General Motors inser` nella ısua linea di assemblaggio Unimate, un braccio meccanico utilizzato per saldare partidi automobili. Attualmente essi sono usati ampiamente in applicazioni ripetitive e diprecisione, come il montaggio di componenti su circuiti stampati; ad ogni modo questirobot sono immobili. La possibilit` di avere robot mobili pu` espandere notevolmente gli scenari in cui essi a opossono fornire il loro contributo. Una delle applicazioni pi` importanti della robotica umobile consiste nell’esplorazione di ambienti non noti a priori, da parte di uno o pi` uveicoli autonomi. Tale esigenza sorge tipicamente ogni qualvolta un robot mobile vengaimpiegato per missioni in ambienti sconosciuti od ostili, in cui l’intervento umano siadifficile o pericoloso (sorveglianza, demining, soccorso, esplorazione planetaria, ecc.). La capacit` di movimento per un robot introduce nuove problematiche: esso deve aconoscere la sua corretta posizione rispetto al mondo reale, in modo da poter scegliere inmodo razionale quale azione compiere. Mediante l’esplorazione autonoma ` possibile co- estruire in automatico una mappa accurata dello spazio di lavoro in cui il robot si muove,a partire dalle misure fornite dai sensori con cui ` equipaggiato (laser scanner, sonar, vi- edeocamere, ecc.). Con l’ausilio della mappa costruita ` possibile coordinare i movimenti ee gli spostamenti del robot al fine di raggiungere delle zone particolari nell’ambiente diinteresse. Al raggiungimento di questa autonomia comportamentale concorrono quindinumerosi fattori, che vanno dalla capacit` di estrarre informazioni significative dai dati asensoriali e di costruire un modello (eventualmente dinamico) dell’ambiente circostan-te, a quella di elaborare, talvolta impiegando sistemi inferenziali, una linea di azionepraticabile, che garantisca il raggiungimento degli obiettivi previsti. Questo capitolo ha lo scopo di introdurre i concetti e gli strumenti disponibili nel-l’ambito della robotica, per sviluppare l’approccio descritto in questa tesi. Vengono 8
  23. 23. Capitolo 1. Robot per l’esplorazione autonoma 9inoltre introdotte alcune conoscenze di base sui robot idonei all’esplorazione autonoma,mettendo in evidenza l’importanza dei sensori impiegati e dei moduli software necessarialla navigazione. Una sezione ` riservata alla descrizione di alcuni approcci esistenti per eeffettuare esplorazione autonoma, mentre la parte conclusiva ha lo scopo di presentaregli strumenti software disponibili, come i simulatori e il framework per robot mobili,SPQR-RDK.1.1 Possibili scenariUn robot mobile, in grado di esplorare autonomamente un ambiente, introduce sicura-mente nuove possibilit`. Nel seguito vengono descritti alcuni scenari significativi, in cui aessi forniscono il loro importante contributo, sostituendo effettivamente o potenzialmenteoperatori umani.Ambiente domestico e medico Uno dei primi impieghi dei robot mobili ` stato quel- e lo di sostituire l’uomo in task ripetitivi in ambiente domestico, come pulire i pa- vimenti o tagliare l’erba. Uno scenario altrettanto importante ` quello di fornire e servizi di assistenza alla persona, in strutture mediche o paramediche (si veda ad esempio il progetto RoboCare1 ). All’interno della RoboCup 2 , esiste da qualche anno la competizione RoboCup@Home, in cui viene incoraggiato lo sviluppo di applicazioni robotiche in grado di assistere l’uomo nelle operazioni di tutti i giorni.Sicurezza L’utilizzo di robot in ambienti dove la sicurezza ` importante sta guada- e gnando sempre maggiori spazi, ad esempio in ambienti dove l’intervento umano ` rischioso (demining, operazioni militari) o dove il monitoraggio richiede accura- e tezza e tempestivit` (sorveglianza). Altri possibili impieghi prevedono il controllo a ambientale, per rilevare la presenza di sostanze tossiche, fumi o radiazioni in aree industriali.Soccorso Gli interventi in emergenza condotti in ambienti disastrati, rischiosi per l’uo- mo e con tempi limitati sono di vitale importanza per operazioni antincendio, di salvataggio o di tipo militare. L’utilizzo di robot al posto di operatori umani o come supporto in tali condizioni pu` ridurre drasticamente i rischi possibili. Tali o scenari vengono spesso denominati Search and Rescue e sono il tema principale della competizione RoboCup Rescue [TKT+ 00, HSI+ 99], in cui viene incoraggiato lo sviluppo e la ricerca nell’ambito del soccorso robotico. 1 http://robocare.istc.cnr.it. 2 La RoboCup ` una competizione fra robot autonomi a livello mondiale, che si disputa annualmente, ecol tentativo di promuovere l’intelligenza artificiale, la robotica e altri campi di ricerca correlati.
  24. 24. Capitolo 1. Robot per l’esplorazione autonoma 10Esplorazioni in condizioni estreme La possibilit` di progettare robot in grado di a lavorare in qualsiasi condizione, permette di ampliare gli scenari di esplorazio- ne, estendendoli ad ambienti invivibili per l’uomo, come l’esplorazione planetaria (si pensi al celebre Sojourner, utilizzato nella missione Pathfinder su Marte) o subacquea.1.2 Tipi di robotLe caratteristiche funzionali e di mobilit` che un robot pu` possedere dipendono quasi a ototalmente dall’ambiente in cui esso si trover` ad operare. Una classificazione comune ` a ela seguente:Unmanned Ground Vehicle (UGV): Sono veicoli terrestri, adatti all’esplorazione di ambienti indoor e outdoor sia strutturati che destrutturati. I pi` comuni utiliz- u zano ruote, ma ne esistono vari tipi cingolati e con zampe (i cosiddetti legged ) che consentono di superare le asperit` del terreno. aUnmanned Aerial Vehicle (UAV): Si tratta di velivoli o elicotteri, nella maggior parte dei casi teleguidati. Essi consentono di effettuare esplorazioni dall’alto e talvolta agire da ripetitori per estendere comunicazioni wireless.Autonomous Underwater Vehicle (AUV): Sono veicoli per subacquei, in grado di raggiungere fino a 6000 m di profondit`. Attualmente sono ampiamente utilizzati a per il monitoraggio di condutture sottomarine.In figura 1.1 ` possibile osservare alcuni esempi dei robot appena descritti. e1.2.1 Robot del laboratorio SIEDIn questa sezione vengo descritti i principali robot presenti nel laboratorio SIED, chesono stati utilizzati intensivamente per la sperimentazione del lavoro effettuato.“Piccolotto”Il robot Piccolotto era in origine un Pioneer P2-DX, ora monta un controller per mo-tori Videre e un laser scanner Hokuyo URG-04LX, entrambi connessi ad un hub USBcollegato ad un notebook 12 IBM, su cui viene eseguito il software di navigazione el’interfacciamento mediante Player (descritto al paragrafo 1.5.1). Possiede due ruotemotrici indipendenti nella parte anteriore e una ruota castor omnidirezionale nella parteposteriore.
  25. 25. Capitolo 1. Robot per l’esplorazione autonoma 11 (a) Un Pioneer P2-DX (b) Un quadrirotore Asctec X3D-BL (c) L’HSV Swift della Bluefin Robotics Figura 1.1: Alcuni robot esploratori“Rotolotto”Esso ` un Pioneer P2-AT con quattro ruote motrici, disposte a coppie di due, e prende il esuo nome dalla forma dell’onboard PC. Il suo equipaggiamento include un laser scannerSick LMS200, sensori sonar e supporto per un’unit` pan-tilt con stereocamera. a (a) Il robot “Piccolotto” (b) Il robot “Rotolotto” Figura 1.2: Alcuni robot mobili presenti nel laboratorio SIED
  26. 26. Capitolo 1. Robot per l’esplorazione autonoma 121.3 Moduli funzionali di un robot esploratoreIn figura 1.3 ` rappresentata una schematizzazione che rappresenta bene le relazioni etra i componenti funzionali di un robot idoneo all’esplorazione autonoma, presente in[SN04]. Da questa si comprende immediatamente l’importanza di sensori e attuatori,con i quali viene gestita l’acquisizione di informazioni e l’interazione con l’ambiente rea-le. Mediante l’interpretazione dei dati grezzi provenienti dai sensori, vengono costruitimodelli rappresentativi dell’ambiente (come ad esempio mappe) e ricavate informazionisulla posizione del robot all’interno di esso (localizzazione). In base alla strategia desi-derata ad alto livello (obiettivi di missione), al fine di permettere al robot di raggiungerel’obiettivo globale prefissato, i moduli di pianificazione provvedono a stabilire i compitida assegnare ai componenti di basso livello, come gli attuatori, in modo da garantire lacorretta navigazione del robot verso i vari target. Va notato che per svolgere attivit` adi locomozione autonoma ` necessario risolvere una grande variet` di problemi, come il e acontrollo del movimento (motion control ), il superamento di ostacoli e il rilevamento disituazioni critiche. Knowledge, Mission Data Base Commands Localization “Position” Cognition Map Building Global Map Path Planning Environment Model Path Local Map Information Path Extraction and Execution Motion Control Interpretation Perception Raw data Actuator Commands Sensing Acting Real World Environment Figura 1.3: Schematizzazione di un robot mobile Nelle prossime sezioni tali componenti verranno descritti singolarmente, fornendouna panoramica che aiuter` a comprendere concetti utilizzati nell’ambito di tutta la atesi.
  27. 27. Capitolo 1. Robot per l’esplorazione autonoma 131.3.1 Sensori e tecniche per l’esplorazioneUna delle funzioni pi` importanti funzionalit` di un sistema autonomo ` acquisire infor- u a emazioni sull’ambiente che lo circonda, utilizzando misurazioni provenienti da vari sensoried estraendone informazioni significative. Esiste un’ampia variet` di sensori impiegati anei robot mobili; alcuni misurano semplici valori come temperature esterne o velocit` di arotazione dei motori. Altri, pi` sofisticati, possono essere usati per ricavare la posizione udel robot, ad esempio rispetto agli ostacoli o a punti di interesse per la sua missione.Dato che il robot ` continuamente in movimento, frequentemente incontrer` caratte- e aristiche dell’ambiente impreviste, per cui le funzionalit` di sensoristica sono alquanto acritiche. Inoltre, dato che ogni sensore acquisisce informazioni incerte sull’ambiente, so-no necessari strumenti stocastici per mantenere limitate ed accettabili la rumorosit` dei adati. Per una trattazione abbastanza completa sui sensori per robot mobili si consulti[Eve95]. Nelle sezioni seguenti verranno elencati alcuni dei pi` importanti sensori e tecni- uche utilizzate per l’esplorazione e la navigazione; gran parte di essi sono presenti dellaboratorio SIED e installati sui robot utilizzati per gli esperimenti descritti in questatesi.1.3.1.1 OdometriaL’odometria ` uno dei metodi pi` utilizzati per conoscere la posizione di robot mobili, in e uquanto fornisce una discreta precisione su brevi distanze, non ha alti costi di applicazioneed ` facilmente integrabile con altri metodi di localizzazione che invece danno misure epi` accurate. u L’idea di base della ricostruzione odometrica ` quello del calcolo della nuova posizione edel robot in base alla strada percorsa rispetto alla posizione precedente (dead-reckoning).Il calcolo avviene tramite l’integrazione nel tempo dell’informazione sul movimento. Perricavare i valori da integrare, l’odometria utilizza degli encoder, attaccati agli assi delleruote o all’armatura del motore, che vanno a misurare la velocit` di rotazione delle ruote ae l’orientazione dello sterzo (basandosi sul principio che la rotazione compiuta da unaruota pu` essere tradotta in spostamento lineare). o Questo metodo causa inevitabilmente l’accumularsi di errori, soprattutto di orien-tazione che causano a loro volta errori in posizione, che crescono proporzionalmentealla distanza percorsa. Gli errori dell’odometria possono essere sistematici (causati adesempio da diametri delle ruote diseguali o disallineate) o non sistematici (movimentosu terreno irregolare e slittamenti delle ruote).
  28. 28. Capitolo 1. Robot per l’esplorazione autonoma 141.3.1.2 Sensori inerzialiCome accade per l’odometria, l’utilizzo di sensori inerziali non richiede punti di rife-rimento assoluti. Essa per calcolare la posizione del robot utilizza invece giroscopi eaccelerometri; i primi misurano la velocit` di rotazione, i secondi invece l’accelerazione. a La navigazione inerziale si basa su misurazioni dinamiche, a breve termine, senzanecessit` di avere informazioni esterne sulla dinamica del robot, poich´ i dati sono ricavati a etramite misurazioni dirette. Il grosso svantaggio nell’impiego di sensori inerziali per`, ` o edovuto al fatto che per ottenere l’orientazione e la posizione bisogna integrare una voltae due volte rispettivamente la velocit` di rotazione e l’accelerazione, generando quindi aerrori in posizione che crescono in modo integrale col tempo (deriva). Come visto perl’odometria, la localizzazione mediante questo metodo non ` adatta a stime accurate per eun lungo periodo di tempo.1.3.1.3 SonarIl sonar ` un dispositivo che sfrutta la propagazione di onde sonore (spesso ultrasuo- eni) per misurare la distanza da un oggetto. Come ` facile osservare in figura 1.4(b), ele onde sonore emesse dal trasmettitore vengono riflesse da eventuali ostacoli e cono-scendo la velocit` del suono (343 m/s alla temperatura di 20◦ C), ` possibile ricavare la a edistanza, misurando il tempo trascorso tra l’emissione e la ricezione dell’onda. Questo (a) Un sonar per robot mobili Onda ri essa Ostacolo Sonar Onda emessa Distanza (b) Principio di funzionamento di un sonar Figura 1.4: Sonar
  29. 29. Capitolo 1. Robot per l’esplorazione autonoma 15tipo di tecnica soffre molto dei fenomeni di riflessione (descritti al paragrafo 2.1.3) e ci` odipende soprattutto dall’angolo con cui l’onda colpisce l’oggetto e dal materiale di cuiesso ` composto. In movimento tali fenomeni sono ancor pi` amplificati e causano una e ustima abbastanza grossolana della distanza dagli ostacoli. Numerosi aspetti riguardantil’esplorazione con il sonar e alcuni modelli probabilistici sono descritti in dettaglio in[TBF05].1.3.1.4 Laser scannerI laser scanner, chiamati talvolta anche laser rangefinder, possono essere pensati come deipiccoli sonar che utilizzano la luce invece del suono, per creare una mappa bidimensionaledegli ostacoli che si trovano in prossimit` del robot. L’accuratezza, i consumi energetici aridotti e i costi sempre pi` contenuti di questi sensori li rendono preferibili rispetto a ututti gli altri, per costruire mappe o localizzare il robot. Range massimo Risoluzione angolare Area visibile Range minimo Area non visibile (a) Alcuni laser scanner (b) Parametri di un laser scanner Figura 1.5: Laser scanner Il principio di funzionamento ` abbastanza intuitivo; ad ogni scansione vengono emes- esi iterativamente dei raggi laser distanziati di un certo angolo, che dipende dalla risolu-zione angolare del dispositivo, fino a ricoprire l’apertura massima dello scanner (FieldOf View). Per ogni emissione, si conosce la distanza e l’angolo rispetto al sensore, dacui pu` essere ricavata la posizione dell’ostacolo rispetto alla sorgente di emissione. o I differenti tipi di laser scanner si differenziano essenzialmente in base alla risoluzio-ne sulla distanza, risoluzione angolare, la frequenza di scansione e al range minimo emassimo raggiungibile. Parametri tipici per questi sensori sono riportati in tabella 1.1. Come per i sensori ad ultrasuoni, una fonte rilevante di errore ` la riflessione incoe- erente dell’energia del laser. Con la luce questo accade quando essa colpisce una superficiemolto riflettente; ci` si verifica ad esempio con oggetti metallici, di legno lucido e, ov- oviamente, specchi. Inoltre, a differenza del sonar, i laser scanner non possono rilevare
  30. 30. Capitolo 1. Robot per l’esplorazione autonoma 16 Risoluzione angolare 0.3◦ -0.5◦ Field Of View 180◦ -240◦ Risoluzione sulla distanza 20 mm Frequenza di scansione 10-20 KHz Range minimo-massimo 20 mm - 70 m Tabella 1.1: Parametri tipici di un laser scannermateriali trasparenti come vetro, che talvolta pu` essere presente in quantit` significative o ain alcuni ambienti (come ad esempio i musei).1.3.1.5 GPSL’utilizzo di GPS per la localizzazione outdoor ` una soluzione abbastanza comune quan- edo non sono presenti altri riferimenti e non ` richiesta precisione elevatissima. Il problema eprincipale del sistema GPS ` dovuto al fatto che il ricevitore deve avere comunicazione econ almeno quattro satelliti, tre per la posizionamento e uno per correggere gli sfasa-menti del clock. Considerando che le trasmissioni sono a bassissima potenza, ` richiesta enecessariamente una condizione di Line-Of-Sight con i satelliti. Di conseguenza, in spa-zi ristretti come ambienti urbani circondati da edifici alti o foreste molto fitte, ` poco eprobabile ricevere il segnale in modo affidabile. Ovviamente, anche la maggior partedegli spazi indoor ` inadeguata per l’impiego di GPS e per tali motivazioni, esso appare eadeguato solo in progetti di robotica mobile in ampie aree aperte o per essere installatosu UAV.1.3.1.6 LandmarkI landmark sono oggetti con caratteristiche distintive che il robot pu` riconoscere at- otraverso il suo sistema sensoriale, ad esempio mediante visione artificiale [BB82]. Ingenerale un landmark pu` avere una locazione fissa e nota a priori, in base al quale il orobot pu` stimare la sua posizione, e viene scelto in maniera tale da essere facilmente odistinguibile rispetto ad altri oggetti per forma o colore (ad esempio contrasta con losfondo). Esso pu` essere naturale, se ` un oggetto o una caratteristica gi` presente nell’am- o e abiente che si sta esplorando (come porte, lampade, ecc) o artificiale, se ` un marcatore che edeve essere posizionato, con il solo scopo di aiutare la navigazione del robot; per esempioforme geometriche (linee, poligoni) che possono includere informazioni addizionali (adesempio sotto forma di codici a barre). Un vantaggio dei landmark artificiali rispetto aquelli naturali ` che date le loro caratteristiche, note a priori, si possono progettare e ecostruire sensori ad hoc per quella determinata applicazione.
  31. 31. Capitolo 1. Robot per l’esplorazione autonoma 17 L’accuratezza di queste tecniche dipende soprattutto dalla precisione con cui i land-mark possono essere riconosciuti (matching) e dall’assunzione che posizione e orientazio-ne siano noti con una buona approssimazione, ad esempio tramite odometria, in modotale da diminuire lo spazio di ricerca. Un esperimento interessante sul riconoscimento di landmark tramite visione artificiale` riportato in [HLD07], mentre in [ZKNN07] vengono impiegati dei tag a radiofrequenzae(RFID) per stabilire dei punti di coordinamento per squadre di robot, con lo scopo disuddividere in modo intelligente lo spazio di esplorazione dell’ambiente.1.3.2 Localizzazione e mappeLa navigazione di un robot mobile nell’ambiente che si sta esplorando richiede la co-struzione di una mappa; senza di essa il robot non pu` ricavare n´ la sua posizione n´ o e equella di eventuali ostacoli. Ad esempio ci` ` vero per i moderni navigatori basati sul oesistema GPS; quest’ultimo fornisce la posizione del ricevitore nel mondo reale, ma senzal’uso di una mappa questa informazione non pu` essere sfruttata adeguatamente per la oguida dell’autoveicolo fino alla destinazione. In problemi di complessit` pi` limitata, in a ucui l’ambiente ` gi` noto, il robot pu` essere istruito preventivamente mediante map- e a ope metriche o topologiche. In generale, il problema di localizzazione con la conoscenzadella mappa dell’ambiente o la stima della mappa a partire dalla conoscenza pi` o me- uno precisa della posizione, sono stati affrontati e risolti utilizzando differenti approcci[FBT99, TFBD00, BEFW97]. Ovviamente le capacit` di esplorazione autonoma hanno la possibilit` di liberare il a arobot dal vincolo di conoscere preventivamente l’ambiente, rendendo possibili applicazio-ni anche in aree non note a priori. Inoltre, anche se accurate, le mappe fornite al robotpossono non coincidere esattamente3 con l’ambiente in ogni istante a causa di molteplicifattori: si pensi alla presenza di oggetti e persone in movimento. In questo tipo di problemi, occorre considerare che mentre il robot cerca di creare lamappa, deve anche tenere conto della sua posizione, basandosi sulle percezioni dei suoisensori. Ne consegue che, per sviluppare un sistema in grado operare in scenari di esplo-razione, ` necessario che l’acquisizione del modello dell’ambiente e la stima della posa edel robot vengano portate avanti concorrentemente (problema chiamato in letteraturaSimultaneous Localization and Mapping - SLAM [DWB06a, DWB06b]), dato che le dueprocedure sono fortemente correlate tra loro. Chiaramente, i sensori giocano un ruolofondamentale in tutte le forme di localizzazione; ` proprio a causa dell’imprecisione e edell’incompletezza di questi ultimi che la quasi totalit` degli approcci a questo problema asono di natura probabilistica o statistica [CDNDW01, TFB98, SAY99]. 3 Si pensi alle conseguenze che si hanno quando le mappe del proprio navigatore satellitare non sonocorrettamente aggiornate!
  32. 32. Capitolo 1. Robot per l’esplorazione autonoma 18 Nei paragrafi seguenti verranno brevemente analizzate solo le tecniche principali perla realizzazione di mappe (mapping), mentre verr` tralasciato il problema della loca- alizzazione del robot rispetto all’ambiente, in quanto problema troppo specifico rispettoalle argomentazioni di questa tesi (per una trattazione abbastanza completa si consulti[TBF05]). Va comunque notato che ogni differente approccio per il mapping si prestaa rappresentare pi` o meno correttamente le diverse tipologie di ambienti (strutturati, usemistrutturati o destrutturati).1.3.2.1 Feature mapsIn generale, una mappa di un ambiente ` una lista di oggetti con associate, le loro eposizioni e propriet` (feature): a m = {m1 , m2 , . . . , mN } (1.1)dove N ` il numero totale di oggetti. e Nelle feature maps, un generico elemento mn , contiene le propriet` della feature, con aassociata la sua posizione geometrica. Spesso si tratta di mappe metriche, caratterizzatecon gli elementi che definiscono l’ambiente come linee, angoli, punti e parametrizzatein funzione delle dimensioni, colore. In caso di ambienti strutturati (ad esempio unufficio), le feature possono essere estratte dalle misurazioni di sonar, laser scanner o dasistemi di visione artificiale. In caso contrario, l’individuazione e il matching di featurenon ` sempre realizzabile e di conseguenza tali mappe non trovano molte applicazioni in eambienti destrutturati (ad esempio un edificio dopo un crollo).1.3.2.2 Occupancy gridNelle occupancy grid, l’ambiente ` suddiviso in una griglia pi` o meno accurata, dove e uogni cella contiene un valore che rappresenta la probabilit` che essa sia occupata o meno ada un oggetto. Queste mappe possono essere rese pi` o meno dettagliate scegliendo la urisoluzione di ogni singola cella. Ovviamente, poich´ il numero di celle cresce il modo equadratico con le dimensioni dell’ambiente da descrivere, lo spazio di memoria necessarioper descrivere delle mappe con precisione sufficiente spesso pu` essere molto grande. o Risultano particolarmente adatte per sensori sonar o laser, rappresentando uno stru-mento valido per filtrare e quindi incrementare l’affidabilit` delle misure mediante pro- ababilit` condizionate. Tali mappe hanno il vantaggio di descrivere, oltre agli oggetti apresenti nell’ambiente, anche lo spazio libero, risultando adeguate alla navigazione dirobot mobili. Un esempio ` riportato in figura 1.6(a). Sempre in riferimento alla nota- ezione 1.1, l’elemento generico mn ` riferito ad una particolare posizione sulla mappa; ad eesempio nel caso bidimensionale ` pi` chiaro indicare mx,y anzich´ mn per esplicitare il e u efatto che mx,y ` una propriet` di specifiche coordinate (x, y) del mondo reale. e a
  33. 33. Capitolo 1. Robot per l’esplorazione autonoma 19 (a) Esempio di occupancy grid (b) Esempio di mappa topolo- gica Figura 1.6: Alcuni tipi di mappe1.3.2.3 Mappe topologicheLa rappresentazione mediante mappe topologiche definisce una relazione diretta tra l’am-biente e un grafo. Esse sono definite attraverso la struttura dell’ambiente che rappresen-tano; ogni luogo ` caratterizzato in termini di unit` funzionali e topologiche (ad esempio e auna stanza o un corridoio) tra loro connesse (ad esempio mediante porte o scale). Nelgrafo che viene costruito, i nodi rappresentano i luoghi e gli archi le connessioni perraggiungerli, risultando in una notazione molto compatta rispetto alle mappe metrichee pi` gestibile computazionalmente (fig. 1.6(b)). u Tuttavia le mappe topologiche hanno anche alcuni svantaggi: in particolare sonosolitamente limitate agli ambienti che possono essere descritti per mezzo di sempliciforme geometriche. Gli ambienti reali solitamente sono complessi e quindi la lista delleforme degli oggetti ` tipicamente incompleta. Un modo per aggirare questa limitazione ` e equella di utilizzare mappe ibride, che rappresentano alcune parti dell’ambiente per mezzodi oggetti e altre utilizzando delle rappresentazioni sullo stile delle occupancy grid.1.3.3 NavigazionePer un robot mobile, i moduli di navigazione combinano tutti quelli visti precedentemen-te (sensoristica, localizzazione, mapping), al fine di decidere passo passo la coordinazionedei movimenti e quindi dei comandi da fornire agli attuatori. Oltre a garantire che ilrobot segua il path scelto fino al target, la navigazione deve saper affrontare scenariin cui gli ostacoli sono dinamici, la mappa ` incompleta e alcune azioni possono fallire e[SN04]. Le varie architetture di navigazione esistenti, suddividono spesso i task in globali elocali. I primi sono visti come problemi di pianificazione a lungo termine, in cui vieneconsiderata l’intera rappresentazione dell’ambiente, rilassando alcuni vincoli (come adesempio l’esatta forma del robot); i secondi dipendono fortemente dalle letture in tempo
  34. 34. Capitolo 1. Robot per l’esplorazione autonoma 20reale dei sensori e devono consentire al robot di evitare ostacoli (obstacle avoidance),modulando opportunamente la sua traiettoria. Spesso pianificazione e reazione sono visti come approcci opposti. In realt`, quando aapplicate a sistemi fisici come i robot mobili, essi sono complementari e ognuno ` critico eper il successo dell’altro. Il problema di navigazione richiede l’esecuzione di un insiemedi azioni (o un piano) per raggiungere il target. Durante l’esecuzione, il robot devetuttavia reagire ad eventi imprevisti in modo tale da poter garantire il raggiungimentodell’obiettivo globale. Senza reazione, lo sforzo della pianificazione non fornisce i risultatisperati dato che il robot non raggiunger` fisicamente il goal, bloccandosi prima, mentre asenza pianificazione, le funzioni di reazione non riusciranno mai a guidare il robot versoun obiettivo distante.1.3.3.1 PianificazioneUn componente importante per garantire al robot di raggiungere un determinato obiet-tivo ` il path planning. In questo tipo di problemi, l’agente deve spostarsi da un punto di epartenza (start) ad un punto di arrivo (target), senza collidere con ostacoli dell’ambientecircostante. Esso ` essenzialmente un problema di ricerca, in cui viene scelta una tra le esequenze di configurazioni che portano il robot dallo start al target, possibilmente quellache minimizza la lunghezza del cammino. Lo spazio di ricerca ` l’insieme di tutte le epossibili configurazioni del robot e la dimensione di questo insieme aumenta esponen-zialmente con il numero di gradi di libert` del robot; la crescita rapida dello spazio di aricerca ` una delle maggiori difficolt` nel path planning. e a Una prima distinzione tra path planner pu` essere fatta tra quelli deliberativi e reat- otivi. La pianificazione deliberativa pu` essere usata nelle situazioni in cui si assumono ocome noti a priori l’ambiente e la posizione del robot, generando, se esiste, una tra-iettoria che consente di evitare gli ostacoli, eventualmente ottimizzando un opportunoindice di prestazione. La pianificazione reattiva ` un requisito fondamentale per i robot eautonomi che passano ciclicamente dalla fase di pianificazione a quella di movimento(fig. 1.3). Quelli pi` avanzati, cercano di adattare il percorso ai cambiamenti improvvisi unell’ambiente. In generale, occorre combinare questi due tipi di approcci, utilizzandoun pianificatore deliberativo basato sulla mappa dell’ambiente disponibile e poi, quandoil robot sta inseguendo la traiettoria pianificata, utilizzare un pianificatore reattivo ingrado di evitare il contatto con ostacoli precedentemente ignoti, mediante tecniche diobstacle avoidance. I metodi utilizzati per il path planning possono essere classificati in base al tipodi decomposizione effettuata sull’ambiente, trasformandolo dal dominio nel continuo aquello discreto. I metodi principali sono quelli a roadmap, a decomposizione di celle e acampi di potenziale [SN04, Doy95].
  35. 35. Capitolo 1. Robot per l’esplorazione autonoma 21 Gli approcci a roadmap cercano di stabilire la connettivit` da un insieme di configu- arazioni libere per il robot, per formare una rete di curve o linee unidimensionali chiamateroadmap. La ricerca del path si riduce al problema di trovare una connessione tra i puntistart e target sulla roadmap, cercando quella ottima. I metodi basati su decomposizione di celle sono ampiamente utilizzati e prevedonodi suddividere l’insieme delle configurazioni in regioni non sovrapposte, chiamate celle.La relazione di adiacenza tra queste celle ` rappresentata da un grafo di connettivit`, e ain cui i nodi sono le celle libere e gli archi mostrano appunto l’adiacenza tra esse. Inquesto grafo viene cercato il path, seguendo le celle libere dal punto di partenza a quellodi arrivo. Il problema principale ` che tutte le celle e il grafo di connettivit` devono e aessere costruiti, prima che il path venga trovato, e per alti gradi di libert` del robot, la adimensione dello spazio di ricerca diventa rapidamente intrattabile. Gli approcci a campi di potenziale utilizzano generalmente l’idea della presenza di unpotenziale repulsivo vicino agli ostacoli e attrattivo vicino all’obbiettivo. Il gradiente deipotenziali guida il path lontano dagli ostacoli, mentre cerca di avvicinarlo all’obiettivo.Lo svantaggio maggiore di questi metodi ` che spesso la pianificazione porta a dei minimi elocali, causando la presenza di soluzioni non complete.1.4 Esplorazione autonomaL’esplorazione in autonomia di un’area sconosciuta ` uno dei problemi fondamentali della erobotica mobile. Per la costruzione di un modello dell’ambiente consistente, il robotdeve essere in grado di esplorarlo efficientemente, individuando la posizione di ostacoli,di oggetti e dello spazio libero, mediante l’utilizzo dei sensori e delle tecniche descritte alparagrafo 1.3.1. L’esplorazione risulta necessaria in molte applicazioni; per la costruzionedella mappa il robot deve esplorare l’ambiente e la stessa cosa accade in scenari di Searchand Rescue, per trovare persone in situazioni di pericolo. Soprattutto per cercare unpunto di interesse in un ambiente non noto a priori, ` necessario effettuare esplorazione ecieca se non si hanno informazioni aggiuntive sulla localizzazione dell’oggetto da trovare,procedendo praticamente per tentativi. Una buona strategia di esplorazione dovrebbe essere efficiente, per coprire l’ambientevelocemente, accurata, per consentire la costruzione di mappe consistenti e adattabile,in grado da poter essere utilizzata in diversi tipi di ambiente (ad esempio in spazi aper-ti come in uffici). Durante l’esplorazione quindi, si possono avere diversi obiettivi daottimizzare, come ad esempio massimizzare l’area ricoperta in un intervallo di tempo[Yam98] o incrementare l’autonomia energetica del robot [MLLH06]. A tal fine risul-tano determinanti le scelte, fatte ad ogni passo, con lo scopo di decidere il prossimotarget da esplorare e verso cui il robot deve spostarsi. Nella maggior parte degli approc-ci [BMF+ 00, KPN, MLLH06], il target ` selezionato fra i punti di frontiera [Yam97], e
  36. 36. Capitolo 1. Robot per l’esplorazione autonoma 22che si trovano cio` sulla linea di confine tra lo spazio esplorato e quello non esplorato e(per un approfondimento al riguardo, si rimanda al paragrafo 5.1.2). Alcuni approcci, sibasano su wall-following [Mat92, XKC97], risultando validi solo in ambienti di limitatacomplessit` strutturale, altri ancora sul riconoscimento di landmark [TK93]. a La scelta della frontiera spesso viene effettuata tenendo in conto utilit` e costi del- ala stessa, in altri casi addirittura avviene casualmente (procedendo per random walk[Thr95]). L’utilit` pu` essere stimata in base alla dimensione dell’area coperta dalla a ofrontiera [SB03], mentre il costo pu` considerare gli spostamenti o le rotazioni necessarie oal robot per raggiungerla [Yam97, MTK]. Tipicamente vengono utilizzate delle strategiegreedy, selezionando il target in modo che l’area potenziale ricoperta sia massima e conminor costo. In altri casi si considera la quantit` di informazione ottenibile da differenti aviewpoint (problema chiamato next-best-view [GBL01]).1.5 SimulatoriAlla complessit` di un robot mobile contribuisce sicuramente l’alto numero di sensori apresenti e la capacit` di movimento e interazione nell’ambiente. Per uno sviluppatore, ala possibilit` di testare i propri algoritmi in un sistema di simulazione, comporta sicu- aramente molti vantaggi in termini di costi e tempi di implementazione. Per non parlaredelle opportunit` che nascono in ambito multi-robot, in quanto ` possibile avere con- a etemporaneamente presenti diverse tipologie di robot, considerando che tale scenario nonsempre ` realizzabile nella pratica. e Durante la realizzazione della tesi ` stato possibile vederne in dettaglio sostanzial- emente due: l’accoppiata Player/Stage [GVS+ 01] e USARsim [WLG03]. Essi verrannobrevemente descritti nelle sezioni seguenti.1.5.1 Player/Stage/GazeboLa piattaforma Player/Stage ` conseguenza di un progetto open-source, iniziato nel 2000 ead opera di Brian Gerkey, Richard Vaughan, Andrew Howard e risulta una delle interfac-ce pi` utilizzate dalle universit` e aziende che si occupano di robotica mobile. Essa pu` u a oessere considerata come due componenti indipendenti di un ambiente di simulazione. Player ha un’architettura che consente di controllare con un paradigma client/serveril robot e i suoi sensori/attuatori, mediante messaggi scambiati tramite TCP/IP. Essofornisce un’interfaccia, indipendente dal linguaggio di programmazione, nei confronti didispositivi hardware, come laser scanner e sonar, grazie ai numerosi driver sviluppatidalla comunit`. a Stage invece pu` essere considerato come una plugin per Player e permette di si- omulare un ambiente multi-agente con una rappresentazione bidimensionale, utilizzandoad esempio da una mappa bitmap. Esso comprende un insieme di dispositivi che rende
  37. 37. Capitolo 1. Robot per l’esplorazione autonoma 23disponibili a Player e che possono essere assemblati per costituire un robot personaliz-zato: questa particolarit` permette di sperimentare in simulazione dispositivi che non asono disponibili sul robot nella realt`. Inoltre i client solitamente non percepiscono la adifferenza tra i dispositivi reali e quelli equivalenti simulati da Stage e ci` permette di opassare semplicemente, e spesso senza modifiche, dal mondo reale a quello simulato eviceversa. ` E presente anche un’estensione (Gazebo), che consente di ampliare le possibilit` di aPlayer ad ambienti tridimensionali. (a) Player/Stage (b) USARsim Figura 1.7: Simulatori per robot mobili1.5.2 USARsimUSARsim (Unified System for Automation and Robot Simulation) ` un simulatore ad eelevato realismo, orientato agli ambienti tridimensionali e soprattutto a scenari di soc-corso robotico, in particolare in ambito Urban Search And Rescue (USAR). Esso ` ebasato sull’engine grafico Unreal2 del videogame Unreal Tournament 2004 di Epic Ga-mes e sull’API GameBots, per fornire un buon rendering grafico e allo stesso tempo unamodellazione fisica realistica. In USARsim sono presenti numerose riproduzioni di ambienti con disastri, modelli dirobot (sia commerciali che sperimentali) e sensori. Inoltre, ` possibile costruire il proprio eambiente di simulazione, controllando tutto tramite una API basata su socket per testaregli algoritmi e interfacce utente, senza necessit` di programmazione addizionale. a Esso ` inoltre il simulatore di riferimento utilizzato nella competizione RoboCup eRescue Virtual [TKT+ 00], data la sua capacit` di riprodurre realmente scenari con adifferente grado di destrutturazione, per valutare le prestazioni di squadre di robot nellacooperazione, ricerca di vittime e mapping dell’ambiente.
  38. 38. Capitolo 1. Robot per l’esplorazione autonoma 241.6 Il framework SPQR-RDKLa piattaforma SPQR-RDK (Software Per Qualunque Robot-Robot Development Kit)` stata progettata e successivamente estesa, all’interno del Dipartimento di Informati-eca e Sistemistica “Antonio Ruberti” (DIS), dell’Universit` di Roma “Sapienza”. Essa apermette una semplicit` di sviluppo e debugging, con al contempo buone capacit` di a amodularizzazione dei nuovi componenti che gradualmente vengono implementati. Essa ` ecomposta da un insieme di librerie software, driver di basso livello, moduli per compor-tamenti ad alto livello, interfacce verso gli agenti robotici ed utility grafiche di ausilio perl’operatore. Inoltre, come il nome stesso indica, ` possibile impiegarla in diversi sistemi erobotici e soprattutto nella robotica mobile. Attualmente l’SPQR-RDK viene impiegatonella competizioni Robocup Soccer e Rescue, ed ` possibile interfacciarlo a vari tipi di erobot (dai Pioneer della ActiveMedia Robotics agli Aibo della Sony). SPQR-RDK ` sviluppato interamente in C++ ed ` disponibile per piattaforme e eUnix (Linux, Mac OS X). Per una descrizione generale si consulti [FGI05]. Nei pa-ragrafi seguenti viene illustrata la struttura del framework, mettendone in evidenza lecaratteristiche principali.1.6.1 Agenti e moduliIn SPQR-RDK, l’entit` principale ` l’agente, un processo software che rappresenta il a erobot. In esso possono essere caricati dinamicamente moduli, ognuno eseguito nel pro-prio thread di esecuzione. La possibilit` di avere un ambiente multi-thread, permette di aeseguire differenti task concorrentemente e di creare gerarchie produttore-consumatore.Ad esempio, un generico agente, pu` avere un modulo dedicato al ricevere i dati prove- onienti da odometria e laser scanner, un modulo che con tali informazioni ha il compitodi eseguire lo scan-matching per stimare la posizione dell’agente e infine un modulo cheutilizzando tale stima e le scansioni del laser costruisce la mappa dell’ambiente. La configurazione di un agente e dei suoi moduli ` abbastanza intuitiva, in quanto ` e esufficiente scrivere un file di configurazione XML-based che contiene l’elenco dei moduliimpiegati, settando opportunamente i relativi parametri.1.6.2 RepositoryLo scambio di dati tra moduli avviene per mezzo di una memoria condivisa, denominatarepository. Nel repository si trovano tutte le propriet` che un modulo condivide con gli aaltri. Esse sono organizzate in una struttura gerarchica ad albero, individuate tramiteuno specifico URL4 . Le connessioni di dati tra moduli (ad esempio input-output) ven-gono realizzate collegando le propriet` di un modulo a quella dell’altro, attraverso una a 4 Ad esempio, la coda contenente i dati provenienti dal laser scanner, ` individuata dall’URL: erdk://agent/laserModule/laserQueue.

×