SlideShare una empresa de Scribd logo
1 de 124
Descargar para leer sin conexión
`
                  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

          Correlatore

Dott. Ing. Vittorio Amos Ziparo




                        Anno Accademico 2006/2007
`
                  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

          Correlatore

Dott. Ing. Vittorio Amos Ziparo




                        Anno Accademico 2006/2007
“Debugging is twice as hard as writing the code in the first place. Therefore, if you
write the code as cleverly as possible, you are, by definition, not smart enough to debug
it.”

                                                                   Brian W. Kernighan
Ringraziamenti
   Questo lavoro di tesi ` nato innanzitutto grazie alla disponibilit` del Prof. Beraldi,
                         e                                           a
che appresi i miei interessi per le tecnologie wireless ha saputo indirizzarmi verso il
laboratorio SIED. Ringrazio ovviamente il mio relatore, il Prof. Iocchi, per avermi dato
la possibilit` di affrontare un progetto stimolante e per avermi indicato sempre la giusta
             a
soluzione ai problemi che continuamente si sono presentati. La mia riconoscenza va
inoltre 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 suggerimenti
e in particolare Arrigo, Daniele e Vittorio, per il costante supporto fornito durante tutto
il periodo di tesi.
    `
    E doveroso da parte mia ringraziare tutti i colleghi tesisti Gianluca, Giuliano, Jo˜o,
                                                                                       a
Luigi, Stefano, Valerio, per i loro consigli e per aver reso meno pesanti le giornate
trascorse al SIED. La mia riconoscenza va inoltre ai ragazzi dell’RFID-Lab, in particolare
al 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 Giorgio
e Cinzia, mio fratello Francesco, i miei nonni Franco e Gina per avermi supportato
psicologicamente e moralmente durante tutti questi splendidi anni all’universit`.
                                                                               a




                                            ii
Indice

Ringraziamenti                                                                                                                 ii


Elenco delle figure                                                                                                            vii

Elenco delle tabelle                                                                                                          ix

Abbreviazioni                                                                                                                  x



Introduzione                                                                                                                   1


I   Concetti fondamentali e stato dell’arte                                                                                    7

1 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
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 . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   25

2 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 . . . . . .                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   40

3 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
Contenuto                                                                                                                       v


II    Sperimentazione, progettazione e implementazione                                                                         59

4 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 . . . . . . . . . . . . . . . . . . .                               .   .   .   .   .   .   71

5 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 . . . . . . . . . . . . . . . . . . . . .                         .   .   .   .   .   .   .   .   .   86

6 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 . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   94


III   Risultati e conclusioni                                                                                                  97

7 Conclusioni e sviluppi futuri                                                                                                98
Contenuto                                                                                     vi


     7.1   Sintesi dei risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . 98
     7.2   Sviluppi futuri ed estensioni . . . . . . . . . . . . . . . . . . . . . . . . . . 99


IV     Appendici                                                                           100

A Piattaforma Freescale MC13213                                                            101




Bibliografia                                                                                103
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
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
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
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
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
Ai miei genitori, per avermi dato questa opportunit`...
                                                   a




                          xii
Introduzione

La possibilit` di creare reti a basso costo e ad alta densit` come le Wireless Sensor
             a                                              a
Network (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           a
con la caratteristica, inoltre, di non dipendere da un’infrastruttura di rete fissa, le hanno
rese ormai l’icona dell’Ubiquitous Computing.
   La funzione principale di una WSN ` quella di riportare eventi relativi all’ambiente
                                     e
controllato, 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                                           a
differenti dal controllo e dal monitoraggio; si pensi ad esempio al contributo informativo
apportato 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                                                     e
stata superata, sia in quale punto preciso della rete, dato che informazioni non associate
alla 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 di
interesse possano divenire di estrema importanza in problemi di SLAM (Simultaneous
Localization and Mapping) [DWB06a, DWB06b] oppure per diminuire i tempi nella
ricerca di oggetti o zone particolari. Si comprende inoltre, quanto ci` sia di interesse
                                                                      o
primario in ambienti indoor (industrie, uffici, abitazioni), o dove comunque non c’` la
                                                                                 e
possibilit` 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 a
priori, in quanto gradualmente l’area sconosciuta viene ridotta, fino a permettere di
trovare l’obiettivo. Se ne deduce facilmente che, se non si hanno informazioni ag-
giuntive sulla localizzazione dell’obiettivo, si procede praticamente per tentativi, con
una 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. In
tali sistemi, l’esplorazione procede ad ogni passo visitando una frontiera, diminuendo in


                                             1
Introduzione                                                                              2


questo modo lo spazio di ricerca. Il problema principale, risiede nel fatto che la selezione
della frontiera viene effettuata casualmente o al massimo con strategie greedy (scegliendo
ad esempio quella pi` vicina al robot), dato che in molti casi non si hanno altre sorgenti
                    u
informative per procedere diversamente.
   Lo scopo di questa tesi ` l’integrazione di sistemi di robotica mobile con gli strumenti
                           e
e le potenzialit` offerte dalle WSN, mediante un’applicazione di supporto alla localizza-
                a
zione. L’approccio utilizzato in questo lavoro di tesi sfrutta le informazioni sulla qualit`
                                                                                           a
del segnale radio (Link Quality Indicator ) ricevuto dai nodi della WSN, installati a bordo
del robot, per guidarne l’esplorazione al fine di raggiungere zone di interesse segnalate da
altrettanti dispositivi. Come vedremo, alla rete possono appartenere sia i robot, sia altri
nodi che possono segnalare oggetti o essere rilasciati durante l’esplorazione stessa, con
la funzione di landmark [SN04]. I dispositivi selezionati per la realizzazione del sistema
seguono 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
                                    e
presso il laboratorio RFID-Lab, dell’Universit` di Roma “Sapienza”, in cui sono stati
                                              a
considerati 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,
                                          a
SKOM06, 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 sono
stati realizzati test sia in ambienti outdoor che indoor, orientati a dimostrare quanto
gi` noto in letteratura e a far comprendere le modalit` con cui affrontare un problema
  a                                                   a
di localizzazione basato su dispositivi wireless. L’approccio proposto tenta di applicare
i meccanismi alla base della localizzazione, al problema dell’esplorazione, presentandosi
come un algoritmo in grado di guidare il robot verso l’obiettivo della ricerca, mediante
un’euristica che si basa sul principio elementare per cui la potenza del segnale decresce
con la distanza. In questo modo, anche se ` difficile ricavare esattamente la distanza che
                                          e
separa trasmettitore e ricevitore, ` possibile stimare qualitativamente quanto si ` vicini
                                   e                                              e
alla sorgente del segnale. Di conseguenza, la ricerca che prima era cieca, si trasforma in
ricerca 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                              u
greedy.
   La possibilit` di effettuare un’esplorazione guidata aiuta, oltre che a diminuire i
                a
tempi di ricerca, anche ad aumentare l’autonomia energetica del robot, evitando zone
dell’ambiente non rilevanti ai fini della missione. Uno degli scenari mediante il quale
si pu` comprendere l’utilit` dell’idea presentata, ` l’impiego del sistema in problemi di
     o                     a                       e
Search and Rescue [HSI+ 99], in cui i robot mobili forniscono il loro supporto a squadre
di soccorritori umani, in operazioni di ricerca e salvataggio in ambienti che hanno subito
Introduzione                                                                              3

                                                                     `
catastrofi o devastazioni, ad alto rischio per i soccorritori stessi. E facile immaginare
come informazioni sulla localizzazione di punti di interesse (ostacoli, feriti, punti di
raccolta, altri robot) possano divenire di estrema importanza per diminuire i tempi di
esplorazione di aree devastate, con la conseguenza di aumentare la probabilit` di salvare
                                                                             a
anche vite umane. Inoltre, considerate le possibilit` di miniaturizzazione che possono
                                                    a
essere raggiunte nella produzione di dispositivi ZigBee, possiamo pensare ad uno scenario
in cui ogni persona pu` indossare un ricevitore e che, nel caso di incidenti o devastazioni,
                      o
esso possa essere interrogato, in modo da facilitare il raggiungimento della vittima stessa.
Ad esempio, tali situazioni possono verificarsi in impianti industriali ad alto rischio, dove
sono potenzialmente possibili incendi, crolli strutturali o emissioni di sostanze tossiche.
   Altri possibili esempi di applicazione, in cui l’approccio pu` portare i suoi vantaggi,
                                                                o
sono 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 robot
mobile equipaggiato con un dispositivo wireless ZigBee di un punto di interesse dove `
                                                                                     e
presente 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                                            e
estendibile a scenari di tale tipologia. Il sistema ` stato implementato in C++, su piat-
                                                    e
taforma Unix, sotto forma di moduli indipendenti per il framework per robot mobili
SPQR-RDK [FGI05]. La tesi ` stata sviluppata presso il laboratorio SIED (Sistemi
                          e
Intelligenti per le Emergenze e la Difesa civile), nato dalla collaborazione tra l’Istituto
Superiore 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                                                        a
di metodologie, tecniche e strumenti prototipali da utilizzare in operazioni di soccorso.


Problematiche affrontate
La 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 sono
stati 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.
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 conseguiti
La grande quantit` di dati sperimentali, raccolti durante l’analisi delle prestazioni tra-
                 a
smissive dei dispositivi, in ambienti indoor e outdoor, ha permesso di ritrovare i risultati
teorici 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, basato
sulla qualit` del segnale ricevuto dai dispositivi di una WSN.
            a
   Le sperimentazioni effettuate, sia in simulazione che in ambiente reale, dimostrano
l’efficacia dell’approccio proposto. L’aggiunta dell’informazione sulla qualit` del segnale,
                                                                            a
consente di risolvere i problemi di ricerca in modo informato, evitando l’esplorazione
di zone dell’ambiente eccessivamente distanti dall’obiettivo. La scelta delle frontiere
viene effettuata in base alla vicinanza con la sorgente del segnale, sostituendo strategie
greedy che spesso non creano vantaggi considerevoli. In questo modo, ` sicuramente
                                                                     e
possibile diminuire i tempi necessari all’individuazione di punti di interesse nella mappa e
incrementare notevolmente l’autonomia energetica del robot utilizzato per l’esplorazione.
   Ovviamente, l’euristica pensata pu` essere raffinata, tenendo in considerazione anche
                                     o
informazioni 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
Introduzione                                                                             5


del LQI). L’idea presentata pu` inoltre essere estesa a scenari multi-robot, agevolando
                              o
la soluzione di problemi come il rendezvous [DR97] o il coordinamento durante alcune
fasi dell’esplorazione multiagente [ZKNN07].


Traccia dell’esposizione
L’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.
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.
Parte I

Concetti fondamentali e stato
          dell’arte




              7
Capitolo 1

Robot per l’esplorazione
autonoma

I 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 parti
di automobili. Attualmente essi sono usati ampiamente in applicazioni ripetitive e di
precisione, come il montaggio di componenti su circuiti stampati; ad ogni modo questi
robot sono immobili.
   La possibilit` di avere robot mobili pu` espandere notevolmente gli scenari in cui essi
                a                         o
possono fornire il loro contributo. Una delle applicazioni pi` importanti della robotica
                                                             u
mobile consiste nell’esplorazione di ambienti non noti a priori, da parte di uno o pi`
                                                                                     u
veicoli autonomi. Tale esigenza sorge tipicamente ogni qualvolta un robot mobile venga
impiegato per missioni in ambienti sconosciuti od ostili, in cui l’intervento umano sia
difficile o pericoloso (sorveglianza, demining, soccorso, esplorazione planetaria, ecc.).
   La capacit` di movimento per un robot introduce nuove problematiche: esso deve
             a
conoscere la sua corretta posizione rispetto al mondo reale, in modo da poter scegliere in
modo razionale quale azione compiere. Mediante l’esplorazione autonoma ` possibile co-
                                                                       e
struire 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-
                                                   e
deocamere, ecc.). Con l’ausilio della mappa costruita ` possibile coordinare i movimenti
                                                      e
e gli spostamenti del robot al fine di raggiungere delle zone particolari nell’ambiente di
interesse. Al raggiungimento di questa autonomia comportamentale concorrono quindi
numerosi fattori, che vanno dalla capacit` di estrarre informazioni significative dai dati
                                         a
sensoriali e di costruire un modello (eventualmente dinamico) dell’ambiente circostan-
te, a quella di elaborare, talvolta impiegando sistemi inferenziali, una linea di azione
praticabile, 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
Capitolo 1. Robot per l’esplorazione autonoma                                                       9


inoltre introdotte alcune conoscenze di base sui robot idonei all’esplorazione autonoma,
mettendo in evidenza l’importanza dei sensori impiegati e dei moduli software necessari
alla navigazione. Una sezione ` riservata alla descrizione di alcuni approcci esistenti per
                              e
effettuare esplorazione autonoma, mentre la parte conclusiva ha lo scopo di presentare
gli strumenti software disponibili, come i simulatori e il framework per robot mobili,
SPQR-RDK.


1.1      Possibili scenari
Un robot mobile, in grado di esplorare autonomamente un ambiente, introduce sicura-
mente nuove possibilit`. Nel seguito vengono descritti alcuni scenari significativi, in cui
                      a
essi forniscono il loro importante contributo, sostituendo effettivamente o potenzialmente
operatori 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,
                  e
col tentativo di promuovere l’intelligenza artificiale, la robotica e altri campi di ricerca correlati.
Capitolo 1. Robot per l’esplorazione autonoma                                           10


Esplorazioni 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 robot
Le caratteristiche funzionali e di mobilit` che un robot pu` possedere dipendono quasi
                                          a                o
totalmente dall’ambiente in cui esso si trover` ad operare. Una classificazione comune `
                                              a                                       e
la 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.
                                       a

Unmanned 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.
             e


1.2.1    Robot del laboratorio SIED

In questa sezione vengo descritti i principali robot presenti nel laboratorio SIED, che
sono 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 USB
collegato ad un notebook 12 IBM, su cui viene eseguito il software di navigazione e
l’interfacciamento mediante Player (descritto al paragrafo 1.5.1). Possiede due ruote
motrici indipendenti nella parte anteriore e una ruota castor omnidirezionale nella parte
posteriore.
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
     e
suo nome dalla forma dell’onboard PC. Il suo equipaggiamento include un laser scanner
Sick 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
Capitolo 1. Robot per l’esplorazione autonoma                                                         12


1.3     Moduli funzionali di un robot esploratore
In figura 1.3 ` rappresentata una schematizzazione che rappresenta bene le relazioni
             e
tra 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 costruiti
modelli rappresentativi dell’ambiente (come ad esempio mappe) e ricavate informazioni
sulla 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 raggiungere
l’obiettivo globale prefissato, i moduli di pianificazione provvedono a stabilire i compiti
da assegnare ai componenti di basso livello, come gli attuatori, in modo da garantire la
corretta navigazione del robot verso i vari target. Va notato che per svolgere attivit`
                                                                                      a
di locomozione autonoma ` necessario risolvere una grande variet` di problemi, come il
                        e                                       a
controllo del movimento (motion control ), il superamento di ostacoli e il rilevamento di
situazioni 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, fornendo
una panoramica che aiuter` a comprendere concetti utilizzati nell’ambito di tutta la
                         a
tesi.
Capitolo 1. Robot per l’esplorazione autonoma                                             13


1.3.1      Sensori e tecniche per l’esplorazione

Una delle funzioni pi` importanti funzionalit` di un sistema autonomo ` acquisire infor-
                     u                       a                        e
mazioni sull’ambiente che lo circonda, utilizzando misurazioni provenienti da vari sensori
ed estraendone informazioni significative. Esiste un’ampia variet` di sensori impiegati
                                                                a
nei robot mobili; alcuni misurano semplici valori come temperature esterne o velocit` di
                                                                                    a
rotazione dei motori. Altri, pi` sofisticati, possono essere usati per ricavare la posizione
                               u
del 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                                                     a
ristiche dell’ambiente impreviste, per cui le funzionalit` di sensoristica sono alquanto
                                                         a
critiche. Inoltre, dato che ogni sensore acquisisce informazioni incerte sull’ambiente, so-
no necessari strumenti stocastici per mantenere limitate ed accettabili la rumorosit` dei
                                                                                    a
dati. 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-
                                                          u
che utilizzate per l’esplorazione e la navigazione; gran parte di essi sono presenti del
laboratorio SIED e installati sui robot utilizzati per gli esperimenti descritti in questa
tesi.


1.3.1.1     Odometria

L’odometria ` uno dei metodi pi` utilizzati per conoscere la posizione di robot mobili, in
            e                  u
quanto fornisce una discreta precisione su brevi distanze, non ha alti costi di applicazione
ed ` facilmente integrabile con altri metodi di localizzazione che invece danno misure
   e
pi` accurate.
  u
    L’idea di base della ricostruzione odometrica ` quello del calcolo della nuova posizione
                                                  e
del robot in base alla strada percorsa rispetto alla posizione precedente (dead-reckoning).
Il calcolo avviene tramite l’integrazione nel tempo dell’informazione sul movimento. Per
ricavare i valori da integrare, l’odometria utilizza degli encoder, attaccati agli assi delle
ruote o all’armatura del motore, che vanno a misurare la velocit` di rotazione delle ruote
                                                                a
e l’orientazione dello sterzo (basandosi sul principio che la rotazione compiuta da una
ruota 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 proporzionalmente
alla distanza percorsa. Gli errori dell’odometria possono essere sistematici (causati ad
esempio da diametri delle ruote diseguali o disallineate) o non sistematici (movimento
su terreno irregolare e slittamenti delle ruote).
Capitolo 1. Robot per l’esplorazione autonoma                                             14


1.3.1.2   Sensori inerziali

Come 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 e
accelerometri; i primi misurano la velocit` di rotazione, i secondi invece l’accelerazione.
                                          a
   La navigazione inerziale si basa su misurazioni dinamiche, a breve termine, senza
necessit` di avere informazioni esterne sulla dinamica del robot, poich´ i dati sono ricavati
        a                                                              e
tramite misurazioni dirette. Il grosso svantaggio nell’impiego di sensori inerziali per`, `
                                                                                       o e
dovuto al fatto che per ottenere l’orientazione e la posizione bisogna integrare una volta
e due volte rispettivamente la velocit` di rotazione e l’accelerazione, generando quindi
                                      a
errori in posizione che crescono in modo integrale col tempo (deriva). Come visto per
l’odometria, la localizzazione mediante questo metodo non ` adatta a stime accurate per
                                                          e
un lungo periodo di tempo.


1.3.1.3   Sonar

Il sonar ` un dispositivo che sfrutta la propagazione di onde sonore (spesso ultrasuo-
         e
ni) per misurare la distanza da un oggetto. Come ` facile osservare in figura 1.4(b),
                                                 e
le 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                                                e
distanza, 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
Capitolo 1. Robot per l’esplorazione autonoma                                                   15


tipo di tecnica soffre molto dei fenomeni di riflessione (descritti al paragrafo 2.1.3) e ci`
                                                                                          o
dipende soprattutto dall’angolo con cui l’onda colpisce l’oggetto e dal materiale di cui
esso ` composto. In movimento tali fenomeni sono ancor pi` amplificati e causano una
     e                                                   u
stima abbastanza grossolana della distanza dagli ostacoli. Numerosi aspetti riguardanti
l’esplorazione con il sonar e alcuni modelli probabilistici sono descritti in dettaglio in
[TBF05].


1.3.1.4    Laser scanner

I laser scanner, chiamati talvolta anche laser rangefinder, possono essere pensati come dei
piccoli sonar che utilizzano la luce invece del suono, per creare una mappa bidimensionale
degli ostacoli che si trovano in prossimit` del robot. L’accuratezza, i consumi energetici
                                          a
ridotti e i costi sempre pi` contenuti di questi sensori li rendono preferibili rispetto a
                           u
tutti 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-
                                 e
si 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 (Field
Of View). Per ogni emissione, si conosce la distanza e l’angolo rispetto al sensore, da
cui 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 e
massimo 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-
                                                                   e
rente dell’energia del laser. Con la luce questo accade quando essa colpisce una superficie
molto riflettente; ci` si verifica ad esempio con oggetti metallici, di legno lucido e, ov-
                    o
viamente, specchi. Inoltre, a differenza del sonar, i laser scanner non possono rilevare
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 scanner


materiali trasparenti come vetro, che talvolta pu` essere presente in quantit` significative
                                                 o                           a
in alcuni ambienti (come ad esempio i musei).


1.3.1.5    GPS

L’utilizzo di GPS per la localizzazione outdoor ` una soluzione abbastanza comune quan-
                                                e
do non sono presenti altri riferimenti e non ` richiesta precisione elevatissima. Il problema
                                             e
principale del sistema GPS ` dovuto al fatto che il ricevitore deve avere comunicazione
                           e
con 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
                                                                             e
necessariamente 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
                                                                                  e
probabile ricevere il segnale in modo affidabile. Ovviamente, anche la maggior parte
degli spazi indoor ` inadeguata per l’impiego di GPS e per tali motivazioni, esso appare
                   e
adeguato solo in progetti di robotica mobile in ampie aree aperte o per essere installato
su UAV.


1.3.1.6    Landmark

I landmark sono oggetti con caratteristiche distintive che il robot pu` riconoscere at-
                                                                      o
traverso il suo sistema sensoriale, ad esempio mediante visione artificiale [BB82]. In
generale un landmark pu` avere una locazione fissa e nota a priori, in base al quale il
                       o
robot pu` stimare la sua posizione, e viene scelto in maniera tale da essere facilmente
        o
distinguibile rispetto ad altri oggetti per forma o colore (ad esempio contrasta con lo
sfondo).
   Esso pu` essere naturale, se ` un oggetto o una caratteristica gi` presente nell’am-
          o                     e                                   a
biente che si sta esplorando (come porte, lampade, ecc) o artificiale, se ` un marcatore che
                                                                         e
deve essere posizionato, con il solo scopo di aiutare la navigazione del robot; per esempio
forme geometriche (linee, poligoni) che possono includere informazioni addizionali (ad
esempio sotto forma di codici a barre). Un vantaggio dei landmark artificiali rispetto a
quelli naturali ` che date le loro caratteristiche, note a priori, si possono progettare e
                e
costruire sensori ad hoc per quella determinata applicazione.
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 modo
tale 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 radiofrequenza
e
(RFID) per stabilire dei punti di coordinamento per squadre di robot, con lo scopo di
suddividere in modo intelligente lo spazio di esplorazione dell’ambiente.


1.3.2       Localizzazione e mappe

La 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                   e
quella di eventuali ostacoli. Ad esempio ci` ` vero per i moderni navigatori basati sul
                                           oe
sistema GPS; quest’ultimo fornisce la posizione del ricevitore nel mondo reale, ma senza
l’uso di una mappa questa informazione non pu` essere sfruttata adeguatamente per la
                                             o
guida dell’autoveicolo fino alla destinazione. In problemi di complessit` pi` limitata, in
                                                                       a u
cui l’ambiente ` gi` noto, il robot pu` essere istruito preventivamente mediante map-
               e a                    o
pe metriche o topologiche. In generale, il problema di localizzazione con la conoscenza
della mappa dell’ambiente o la stima della mappa a partire dalla conoscenza pi` o me-
                                                                              u
no 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                                             a
robot 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 robot
possono non coincidere esattamente3 con l’ambiente in ogni istante a causa di molteplici
fattori: si pensi alla presenza di oggetti e persone in movimento.
       In questo tipo di problemi, occorre considerare che mentre il robot cerca di creare la
mappa, deve anche tenere conto della sua posizione, basandosi sulle percezioni dei suoi
sensori. 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
         e
del robot vengano portate avanti concorrentemente (problema chiamato in letteratura
Simultaneous Localization and Mapping - SLAM [DWB06a, DWB06b]), dato che le due
procedure sono fortemente correlate tra loro. Chiaramente, i sensori giocano un ruolo
fondamentale in tutte le forme di localizzazione; ` proprio a causa dell’imprecisione e
                                                  e
dell’incompletezza di questi ultimi che la quasi totalit` degli approcci a questo problema
                                                        a
sono di natura probabilistica o statistica [CDNDW01, TFB98, SAY99].
   3
    Si pensi alle conseguenze che si hanno quando le mappe del proprio navigatore satellitare non sono
correttamente aggiornate!
Capitolo 1. Robot per l’esplorazione autonoma                                           18


   Nei paragrafi seguenti verranno brevemente analizzate solo le tecniche principali per
la realizzazione di mappe (mapping), mentre verr` tralasciato il problema della loca-
                                                a
lizzazione del robot rispetto all’ambiente, in quanto problema troppo specifico rispetto
alle argomentazioni di questa tesi (per una trattazione abbastanza completa si consulti
[TBF05]). Va comunque notato che ogni differente approccio per il mapping si presta
a rappresentare pi` o meno correttamente le diverse tipologie di ambienti (strutturati,
                  u
semistrutturati o destrutturati).

1.3.2.1   Feature maps

In generale, una mappa di un ambiente ` una lista di oggetti con associate, le loro
                                      e
posizioni 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
                                                                     a
associata la sua posizione geometrica. Spesso si tratta di mappe metriche, caratterizzate
con gli elementi che definiscono l’ambiente come linee, angoli, punti e parametrizzate
in funzione delle dimensioni, colore. In caso di ambienti strutturati (ad esempio un
ufficio), le feature possono essere estratte dalle misurazioni di sonar, laser scanner o da
sistemi di visione artificiale. In caso contrario, l’individuazione e il matching di feature
non ` sempre realizzabile e di conseguenza tali mappe non trovano molte applicazioni in
    e
ambienti destrutturati (ad esempio un edificio dopo un crollo).

1.3.2.2   Occupancy grid

Nelle occupancy grid, l’ambiente ` suddiviso in una griglia pi` o meno accurata, dove
                                 e                            u
ogni cella contiene un valore che rappresenta la probabilit` che essa sia occupata o meno
                                                           a
da un oggetto. Queste mappe possono essere rese pi` o meno dettagliate scegliendo la
                                                  u
risoluzione di ogni singola cella. Ovviamente, poich´ il numero di celle cresce il modo
                                                    e
quadratico con le dimensioni dell’ambiente da descrivere, lo spazio di memoria necessario
per 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-
                                                          a
babilit` condizionate. Tali mappe hanno il vantaggio di descrivere, oltre agli oggetti
       a
presenti nell’ambiente, anche lo spazio libero, risultando adeguate alla navigazione di
robot mobili. Un esempio ` riportato in figura 1.6(a). Sempre in riferimento alla nota-
                         e
zione 1.1, l’elemento generico mn ` riferito ad una particolare posizione sulla mappa; ad
                                  e
esempio nel caso bidimensionale ` pi` chiaro indicare mx,y anzich´ mn per esplicitare il
                                e u                              e
fatto che mx,y ` una propriet` di specifiche coordinate (x, y) del mondo reale.
               e             a
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 mappe


1.3.2.3    Mappe topologiche

La 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                                  a
una stanza o un corridoio) tra loro connesse (ad esempio mediante porte o scale). Nel
grafo che viene costruito, i nodi rappresentano i luoghi e gli archi le connessioni per
raggiungerli, risultando in una notazione molto compatta rispetto alle mappe metriche
e pi` gestibile computazionalmente (fig. 1.6(b)).
    u
   Tuttavia le mappe topologiche hanno anche alcuni svantaggi: in particolare sono
solitamente limitate agli ambienti che possono essere descritti per mezzo di semplici
forme geometriche. Gli ambienti reali solitamente sono complessi e quindi la lista delle
forme degli oggetti ` tipicamente incompleta. Un modo per aggirare questa limitazione `
                    e                                                                 e
quella di utilizzare mappe ibride, che rappresentano alcune parti dell’ambiente per mezzo
di oggetti e altre utilizzando delle rappresentazioni sullo stile delle occupancy grid.


1.3.3     Navigazione

Per un robot mobile, i moduli di navigazione combinano tutti quelli visti precedentemen-
te (sensoristica, localizzazione, mapping), al fine di decidere passo passo la coordinazione
dei movimenti e quindi dei comandi da fornire agli attuatori. Oltre a garantire che il
robot segua il path scelto fino al target, la navigazione deve saper affrontare scenari
in 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 e
locali. I primi sono visti come problemi di pianificazione a lungo termine, in cui viene
considerata l’intera rappresentazione dell’ambiente, rilassando alcuni vincoli (come ad
esempio l’esatta forma del robot); i secondi dipendono fortemente dalle letture in tempo
Capitolo 1. Robot per l’esplorazione autonoma                                              20


reale 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
                                                                             a
applicate a sistemi fisici come i robot mobili, essi sono complementari e ognuno ` critico
                                                                                e
per il successo dell’altro. Il problema di navigazione richiede l’esecuzione di un insieme
di azioni (o un piano) per raggiungere il target. Durante l’esecuzione, il robot deve
tuttavia reagire ad eventi imprevisti in modo tale da poter garantire il raggiungimento
dell’obiettivo globale. Senza reazione, lo sforzo della pianificazione non fornisce i risultati
sperati dato che il robot non raggiunger` fisicamente il goal, bloccandosi prima, mentre
                                        a
senza pianificazione, le funzioni di reazione non riusciranno mai a guidare il robot verso
un obiettivo distante.


1.3.3.1   Pianificazione

Un 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
     e
partenza (start) ad un punto di arrivo (target), senza collidere con ostacoli dell’ambiente
circostante. Esso ` essenzialmente un problema di ricerca, in cui viene scelta una tra le
                  e
sequenze di configurazioni che portano il robot dallo start al target, possibilmente quella
che minimizza la lunghezza del cammino. Lo spazio di ricerca ` l’insieme di tutte le
                                                             e
possibili 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
                                          a
ricerca ` una delle maggiori difficolt` nel path planning.
        e                           a
   Una prima distinzione tra path planner pu` essere fatta tra quelli deliberativi e reat-
                                            o
tivi. La pianificazione deliberativa pu` essere usata nelle situazioni in cui si assumono
                                      o
come 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 opportuno
indice di prestazione. La pianificazione reattiva ` un requisito fondamentale per i robot
                                                 e
autonomi 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
                    u
nell’ambiente. In generale, occorre combinare questi due tipi di approcci, utilizzando
un pianificatore deliberativo basato sulla mappa dell’ambiente disponibile e poi, quando
il robot sta inseguendo la traiettoria pianificata, utilizzare un pianificatore reattivo in
grado di evitare il contatto con ostacoli precedentemente ignoti, mediante tecniche di
obstacle avoidance.
   I metodi utilizzati per il path planning possono essere classificati in base al tipo
di decomposizione effettuata sull’ambiente, trasformandolo dal dominio nel continuo a
quello discreto. I metodi principali sono quelli a roadmap, a decomposizione di celle e a
campi di potenziale [SN04, Doy95].
Capitolo 1. Robot per l’esplorazione autonoma                                               21


   Gli approcci a roadmap cercano di stabilire la connettivit` da un insieme di configu-
                                                             a
razioni libere per il robot, per formare una rete di curve o linee unidimensionali chiamate
roadmap. La ricerca del path si riduce al problema di trovare una connessione tra i punti
start e target sulla roadmap, cercando quella ottima.
   I metodi basati su decomposizione di celle sono ampiamente utilizzati e prevedono
di 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                                         a
in cui i nodi sono le celle libere e gli archi mostrano appunto l’adiacenza tra esse. In
questo grafo viene cercato il path, seguendo le celle libere dal punto di partenza a quello
di arrivo. Il problema principale ` che tutte le celle e il grafo di connettivit` devono
                                  e                                             a
essere costruiti, prima che il path venga trovato, e per alti gradi di libert` del robot, la
                                                                             a
dimensione dello spazio di ricerca diventa rapidamente intrattabile.
   Gli approcci a campi di potenziale utilizzano generalmente l’idea della presenza di un
potenziale repulsivo vicino agli ostacoli e attrattivo vicino all’obbiettivo. Il gradiente dei
potenziali 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
                                        e
locali, causando la presenza di soluzioni non complete.


1.4     Esplorazione autonoma
L’esplorazione in autonomia di un’area sconosciuta ` uno dei problemi fondamentali della
                                                   e
robotica mobile. Per la costruzione di un modello dell’ambiente consistente, il robot
deve 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 al
paragrafo 1.3.1. L’esplorazione risulta necessaria in molte applicazioni; per la costruzione
della mappa il robot deve esplorare l’ambiente e la stessa cosa accade in scenari di Search
and Rescue, per trovare persone in situazioni di pericolo. Soprattutto per cercare un
punto di interesse in un ambiente non noto a priori, ` necessario effettuare esplorazione
                                                     e
cieca 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’ambiente
velocemente, 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 da
ottimizzare, 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 prossimo
target 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
Capitolo 1. Robot per l’esplorazione autonoma                                           22


che 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, si
basano su wall-following [Mat92, XKC97], risultando validi solo in ambienti di limitata
complessit` strutturale, altri ancora sul riconoscimento di landmark [TK93].
          a
   La scelta della frontiera spesso viene effettuata tenendo in conto utilit` e costi del-
                                                                           a
la 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   o
frontiera [SB03], mentre il costo pu` considerare gli spostamenti o le rotazioni necessarie
                                    o
al robot per raggiungerla [Yam97, MTK]. Tipicamente vengono utilizzate delle strategie
greedy, selezionando il target in modo che l’area potenziale ricoperta sia massima e con
minor costo. In altri casi si considera la quantit` di informazione ottenibile da differenti
                                                  a
viewpoint (problema chiamato next-best-view [GBL01]).


1.5     Simulatori
Alla complessit` di un robot mobile contribuisce sicuramente l’alto numero di sensori
               a
presenti e la capacit` di movimento e interazione nell’ambiente. Per uno sviluppatore,
                     a
la possibilit` di testare i propri algoritmi in un sistema di simulazione, comporta sicu-
             a
ramente molti vantaggi in termini di costi e tempi di implementazione. Per non parlare
delle opportunit` che nascono in ambito multi-robot, in quanto ` possibile avere con-
                a                                              e
temporaneamente presenti diverse tipologie di robot, considerando che tale scenario non
sempre ` realizzabile nella pratica.
       e
   Durante la realizzazione della tesi ` stato possibile vederne in dettaglio sostanzial-
                                       e
mente due: l’accoppiata Player/Stage [GVS+ 01] e USARsim [WLG03]. Essi verranno
brevemente descritti nelle sezioni seguenti.


1.5.1    Player/Stage/Gazebo

La piattaforma Player/Stage ` conseguenza di un progetto open-source, iniziato nel 2000
                            e
ad 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                                                      o
essere considerata come due componenti indipendenti di un ambiente di simulazione.
   Player ha un’architettura che consente di controllare con un paradigma client/server
il robot e i suoi sensori/attuatori, mediante messaggi scambiati tramite TCP/IP. Esso
fornisce un’interfaccia, indipendente dal linguaggio di programmazione, nei confronti di
dispositivi hardware, come laser scanner e sonar, grazie ai numerosi driver sviluppati
dalla comunit`.
             a
   Stage invece pu` essere considerato come una plugin per Player e permette di si-
                  o
mulare un ambiente multi-agente con una rappresentazione bidimensionale, utilizzando
ad esempio da una mappa bitmap. Esso comprende un insieme di dispositivi che rende
Capitolo 1. Robot per l’esplorazione autonoma                                             23


disponibili a Player e che possono essere assemblati per costituire un robot personaliz-
zato: questa particolarit` permette di sperimentare in simulazione dispositivi che non
                         a
sono disponibili sul robot nella realt`. Inoltre i client solitamente non percepiscono la
                                      a
differenza tra i dispositivi reali e quelli equivalenti simulati da Stage e ci` permette di
                                                                             o
passare semplicemente, e spesso senza modifiche, dal mondo reale a quello simulato e
viceversa.
    `
    E presente anche un’estensione (Gazebo), che consente di ampliare le possibilit` di
                                                                                   a
Player ad ambienti tridimensionali.




             (a) Player/Stage                                (b) USARsim



                           Figura 1.7: Simulatori per robot mobili



1.5.2    USARsim

USARsim (Unified System for Automation and Robot Simulation) ` un simulatore ad
                                                            e
elevato realismo, orientato agli ambienti tridimensionali e soprattutto a scenari di soc-
corso robotico, in particolare in ambito Urban Search And Rescue (USAR). Esso `
                                                                              e
basato 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 una
modellazione fisica realistica.
   In USARsim sono presenti numerose riproduzioni di ambienti con disastri, modelli di
robot (sia commerciali che sperimentali) e sensori. Inoltre, ` possibile costruire il proprio
                                                             e
ambiente di simulazione, controllando tutto tramite una API basata su socket per testare
gli algoritmi e interfacce utente, senza necessit` di programmazione addizionale.
                                                 a
   Esso ` inoltre il simulatore di riferimento utilizzato nella competizione RoboCup
        e
Rescue Virtual [TKT+ 00], data la sua capacit` di riprodurre realmente scenari con
                                             a
differente grado di destrutturazione, per valutare le prestazioni di squadre di robot nella
cooperazione, ricerca di vittime e mapping dell’ambiente.
Capitolo 1. Robot per l’esplorazione autonoma                                                24


1.6       Il framework SPQR-RDK
La piattaforma SPQR-RDK (Software Per Qualunque Robot-Robot Development Kit)
` stata progettata e successivamente estesa, all’interno del Dipartimento di Informati-
e
ca e Sistemistica “Antonio Ruberti” (DIS), dell’Universit` di Roma “Sapienza”. Essa
                                                         a
permette una semplicit` di sviluppo e debugging, con al contempo buone capacit` di
                      a                                                       a
modularizzazione dei nuovi componenti che gradualmente vengono implementati. Essa `
                                                                                  e
composta 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 per
l’operatore. Inoltre, come il nome stesso indica, ` possibile impiegarla in diversi sistemi
                                                  e
robotici e soprattutto nella robotica mobile. Attualmente l’SPQR-RDK viene impiegato
nella competizioni Robocup Soccer e Rescue, ed ` possibile interfacciarlo a vari tipi di
                                               e
robot (dai Pioneer della ActiveMedia Robotics agli Aibo della Sony).
      SPQR-RDK ` sviluppato interamente in C++ ed ` disponibile per piattaforme
               e                                  e
Unix (Linux, Mac OS X). Per una descrizione generale si consulti [FGI05]. Nei pa-
ragrafi seguenti viene illustrata la struttura del framework, mettendone in evidenza le
caratteristiche principali.


1.6.1      Agenti e moduli

In SPQR-RDK, l’entit` principale ` l’agente, un processo software che rappresenta il
                    a            e
robot. 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
                                        a
eseguire differenti task concorrentemente e di creare gerarchie produttore-consumatore.
Ad esempio, un generico agente, pu` avere un modulo dedicato al ricevere i dati prove-
                                  o
nienti da odometria e laser scanner, un modulo che con tali informazioni ha il compito
di eseguire lo scan-matching per stimare la posizione dell’agente e infine un modulo che
utilizzando 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                                 e
sufficiente scrivere un file di configurazione XML-based che contiene l’elenco dei moduli
impiegati, settando opportunamente i relativi parametri.


1.6.2      Repository

Lo scambio di dati tra moduli avviene per mezzo di una memoria condivisa, denominata
repository. Nel repository si trovano tutte le propriet` che un modulo condivide con gli
                                                       a
altri. Esse sono organizzate in una struttura gerarchica ad albero, individuate tramite
uno 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:
                                                                         e
rdk://agent/laserModule/laserQueue.
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis
A.Dionisi Thesis

Más contenido relacionado

La actualidad más candente

Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...
Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...
Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...Myrteza Kertusha
 
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEMTesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEMDavide Ciambelli
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di PythonAmmLibera AL
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaSergio Taddia
 
Modellazione della dinamica di un liquido bifase mediante GPU CUDA
Modellazione della dinamica di un liquido bifase mediante GPU CUDAModellazione della dinamica di un liquido bifase mediante GPU CUDA
Modellazione della dinamica di un liquido bifase mediante GPU CUDAkylanee
 
Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...
Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...
Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...danielenicassio
 
Abstract Domenico Brigante
Abstract   Domenico BriganteAbstract   Domenico Brigante
Abstract Domenico Brigantedox82
 
Analisi Usabilità 3d Mansion
Analisi Usabilità 3d MansionAnalisi Usabilità 3d Mansion
Analisi Usabilità 3d MansionRoberta Sanzani
 
Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)Fulvio Corno
 
Il Linux OpenSound System
Il Linux OpenSound SystemIl Linux OpenSound System
Il Linux OpenSound SystemAntonioTringali
 
Pattern Recognition Lecture Notes
Pattern Recognition Lecture NotesPattern Recognition Lecture Notes
Pattern Recognition Lecture NotesRobertoMelfi
 
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientaleInterfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientaleLuigi De Russis
 
Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Ministry of Public Education
 
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D Andrea Bidinost
 
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...paoloUser
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility modelsUmberto Griffo
 
Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)Alessandro Montalti
 
Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...
Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...
Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...Francesco De Giorgi
 

La actualidad más candente (20)

Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...
Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...
Progetto e realizzazione di un kernel linux per il controllo dinamico degli s...
 
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEMTesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio Taddia
 
Modellazione della dinamica di un liquido bifase mediante GPU CUDA
Modellazione della dinamica di un liquido bifase mediante GPU CUDAModellazione della dinamica di un liquido bifase mediante GPU CUDA
Modellazione della dinamica di un liquido bifase mediante GPU CUDA
 
Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...
Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...
Progetto e Realizzazione di un Software per la Rilevazione Automatica di Codi...
 
Abstract Domenico Brigante
Abstract   Domenico BriganteAbstract   Domenico Brigante
Abstract Domenico Brigante
 
Analisi Usabilità 3d Mansion
Analisi Usabilità 3d MansionAnalisi Usabilità 3d Mansion
Analisi Usabilità 3d Mansion
 
Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)Esercizi di programmazione in C (v. 2.01)
Esercizi di programmazione in C (v. 2.01)
 
Il Linux OpenSound System
Il Linux OpenSound SystemIl Linux OpenSound System
Il Linux OpenSound System
 
Tesi garasi
Tesi garasiTesi garasi
Tesi garasi
 
Pattern Recognition Lecture Notes
Pattern Recognition Lecture NotesPattern Recognition Lecture Notes
Pattern Recognition Lecture Notes
 
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientaleInterfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
 
Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)Piano Nazionale Scuola Digitale (risorse integrative)
Piano Nazionale Scuola Digitale (risorse integrative)
 
a4_centrata
a4_centrataa4_centrata
a4_centrata
 
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
 
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...
Valutazione di descrittori per il rilevamento automatico di nuclei cellulari ...
 
Validation and analysis of mobility models
Validation and analysis of mobility modelsValidation and analysis of mobility models
Validation and analysis of mobility models
 
Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)Montalti - "Interactive Musical Agents" (2010, paper ITA)
Montalti - "Interactive Musical Agents" (2010, paper ITA)
 
Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...
Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...
Valutazione sperimentale di tecnologie per la gestione dei dati per workflow ...
 

Destacado

Ringraziamenti
RingraziamentiRingraziamenti
RingraziamentiA2211
 
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Mario Valiante
 
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerProgettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerLorenzo Sfarra
 
Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" filippo rossi
 
Tesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićTesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićJosip Mihovilovic
 
Strumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idriciStrumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idriciCarlo Signor
 
Tesi Di Laurea - Stefano Berto
Tesi Di Laurea - Stefano BertoTesi Di Laurea - Stefano Berto
Tesi Di Laurea - Stefano BertoStefano Berto
 
Lanfranco (2012) La difesa civile nel XXI secolo
Lanfranco (2012) La difesa civile nel XXI secoloLanfranco (2012) La difesa civile nel XXI secolo
Lanfranco (2012) La difesa civile nel XXI secoloMassimo Lanfranco
 
Tesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiutaTesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiutaRiccardo Gnani
 
ADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di Frascati
ADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di FrascatiADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di Frascati
ADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di FrascatiGiorgio Sestili
 
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...Margherita Ider
 
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...Davide Trebbi
 
Il Business Model di Grom S.r.l. - tesi di laurea
Il Business Model di Grom S.r.l. - tesi di laureaIl Business Model di Grom S.r.l. - tesi di laurea
Il Business Model di Grom S.r.l. - tesi di laureaRialzo Impresa
 
Il mio grazie a voi
Il mio grazie a voiIl mio grazie a voi
Il mio grazie a voiluna0212
 
Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...
Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...
Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...Filippo Andolfatto
 
Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0ULRICO HOEPLI EDITORE, MILAN
 

Destacado (20)

Ringraziamenti
RingraziamentiRingraziamenti
Ringraziamenti
 
Ringraziamenti
RingraziamentiRingraziamenti
Ringraziamenti
 
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
 
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerProgettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
 
Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere"
 
Tesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićTesi di laurea di Josip Mihovilović
Tesi di laurea di Josip Mihovilović
 
Strumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idriciStrumenti e modelli per la gestione dei servizi idrici
Strumenti e modelli per la gestione dei servizi idrici
 
Tesi
TesiTesi
Tesi
 
Tesi processo st.
Tesi processo st.Tesi processo st.
Tesi processo st.
 
Tesi Di Laurea - Stefano Berto
Tesi Di Laurea - Stefano BertoTesi Di Laurea - Stefano Berto
Tesi Di Laurea - Stefano Berto
 
Lanfranco (2012) La difesa civile nel XXI secolo
Lanfranco (2012) La difesa civile nel XXI secoloLanfranco (2012) La difesa civile nel XXI secolo
Lanfranco (2012) La difesa civile nel XXI secolo
 
Tesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiutaTesi laurea triennale - Fertilia la città incompiuta
Tesi laurea triennale - Fertilia la città incompiuta
 
ADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di Frascati
ADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di FrascatiADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di Frascati
ADONE: Storia dell'Anello di Accumulazione per Elettroni e Positroni di Frascati
 
Vertical Branding nella Moda
Vertical  Branding nella ModaVertical  Branding nella Moda
Vertical Branding nella Moda
 
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
La comunicazione come servizio pubblico. Tesi di Laurea Magistrale in Design ...
 
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
Tesi di laurea - L'industria culturale in Italia - il caffé letterario - Davi...
 
Il Business Model di Grom S.r.l. - tesi di laurea
Il Business Model di Grom S.r.l. - tesi di laureaIl Business Model di Grom S.r.l. - tesi di laurea
Il Business Model di Grom S.r.l. - tesi di laurea
 
Il mio grazie a voi
Il mio grazie a voiIl mio grazie a voi
Il mio grazie a voi
 
Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...
Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...
Tesi di laurea di Andolfatto Filippo: Pratiche di Project Management e User E...
 
Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0Conclusione Tesi marketing non convenzionale e web 2.0
Conclusione Tesi marketing non convenzionale e web 2.0
 

Similar a A.Dionisi Thesis

Banovaz Diego - Tesi
Banovaz Diego - TesiBanovaz Diego - Tesi
Banovaz Diego - TesiDiego Banovaz
 
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...Domenico Schillaci
 
24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...
24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...
24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...maaske
 
Realizzazione di un modello di router ottico in ambiente open source.
Realizzazione di un modello di router ottico in ambiente open source.Realizzazione di un modello di router ottico in ambiente open source.
Realizzazione di un modello di router ottico in ambiente open source.Raul Cafini
 
Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...
Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...
Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...Antonio Sanfelice
 
Inoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linuxInoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linuxCe.Se.N.A. Security
 
[Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System [Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System Stefano Bonetta
 
Tecnologie per la traccibilità
Tecnologie per la traccibilitàTecnologie per la traccibilità
Tecnologie per la traccibilitàLie Chen
 
Progettare artefatti cognitivi
Progettare artefatti cognitiviProgettare artefatti cognitivi
Progettare artefatti cognitiviStefano Bussolon
 
Strategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticaStrategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticapeppespe
 
Soothsayer multisource system for text prediction
Soothsayer multisource system for text predictionSoothsayer multisource system for text prediction
Soothsayer multisource system for text predictionmikkelfh
 
MARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARY
MARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARYMARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARY
MARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARYvantasso
 
Tesi De Franceschi Daniel
Tesi De Franceschi DanielTesi De Franceschi Daniel
Tesi De Franceschi Danielguest8d17469
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsLorenzo Stacchio
 
Monitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di MarkovMonitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di Markovrkjp
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Davide Ciambelli
 
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...Daniele Ciriello
 

Similar a A.Dionisi Thesis (20)

Banovaz Diego - Tesi
Banovaz Diego - TesiBanovaz Diego - Tesi
Banovaz Diego - Tesi
 
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
Sviluppo di un sistema per il monitoraggio ambientale basato su reti di senso...
 
24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...
24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...
24546913 progettazione-e-implementazione-del-sistema-di-controllo-per-un-pend...
 
Realizzazione di un modello di router ottico in ambiente open source.
Realizzazione di un modello di router ottico in ambiente open source.Realizzazione di un modello di router ottico in ambiente open source.
Realizzazione di un modello di router ottico in ambiente open source.
 
Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...
Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...
Sviluppo di una libreria orientata agli oggetti per il calcolo di NURBS con a...
 
Inoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linuxInoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linux
 
[Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System [Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System
 
Tecnologie per la traccibilità
Tecnologie per la traccibilitàTecnologie per la traccibilità
Tecnologie per la traccibilità
 
Progettare artefatti cognitivi
Progettare artefatti cognitiviProgettare artefatti cognitivi
Progettare artefatti cognitivi
 
Strategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informaticaStrategie ingestigative in ambito di criminalità informatica
Strategie ingestigative in ambito di criminalità informatica
 
Thesis marco de_marco
Thesis marco de_marcoThesis marco de_marco
Thesis marco de_marco
 
Soothsayer multisource system for text prediction
Soothsayer multisource system for text predictionSoothsayer multisource system for text prediction
Soothsayer multisource system for text prediction
 
MARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARY
MARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARYMARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARY
MARKETING ED ECOMMERCE NELL’EDITORIA: IL CASO TRADING LIBRARY
 
Tesi De Franceschi Daniel
Tesi De Franceschi DanielTesi De Franceschi Daniel
Tesi De Franceschi Daniel
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistems
 
Monitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di MarkovMonitoraggio di applicazioni software mediante modelli di Markov
Monitoraggio di applicazioni software mediante modelli di Markov
 
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
Tesi Specialistica - L'ottimizzazione delle risorse della Grid di EGEE median...
 
T2826552.PDF
T2826552.PDFT2826552.PDF
T2826552.PDF
 
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
 
BACHELOR_THESIS
BACHELOR_THESISBACHELOR_THESIS
BACHELOR_THESIS
 

A.Dionisi Thesis

  • 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 Correlatore Dott. Ing. Vittorio Amos Ziparo Anno Accademico 2006/2007
  • 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 Correlatore Dott. Ing. Vittorio Amos Ziparo Anno Accademico 2006/2007
  • 3. “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” Brian W. Kernighan
  • 4. Ringraziamenti Questo lavoro di tesi ` nato innanzitutto grazie alla disponibilit` del Prof. Beraldi, e a che appresi i miei interessi per le tecnologie wireless ha saputo indirizzarmi verso il laboratorio SIED. Ringrazio ovviamente il mio relatore, il Prof. Iocchi, per avermi dato la possibilit` di affrontare un progetto stimolante e per avermi indicato sempre la giusta a soluzione ai problemi che continuamente si sono presentati. La mia riconoscenza va inoltre 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 suggerimenti e in particolare Arrigo, Daniele e Vittorio, per il costante supporto fornito durante tutto il periodo di tesi. ` E doveroso da parte mia ringraziare tutti i colleghi tesisti Gianluca, Giuliano, Jo˜o, a Luigi, Stefano, Valerio, per i loro consigli e per aver reso meno pesanti le giornate trascorse al SIED. La mia riconoscenza va inoltre ai ragazzi dell’RFID-Lab, in particolare al 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 Giorgio e Cinzia, mio fratello Francesco, i miei nonni Franco e Gina per avermi supportato psicologicamente e moralmente durante tutti questi splendidi anni all’universit`. a ii
  • 5. Indice Ringraziamenti ii Elenco delle figure vii Elenco delle tabelle ix Abbreviazioni x Introduzione 1 I Concetti fondamentali e stato dell’arte 7 1 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. 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 . . . . . . . . . . . . . . . . . . . . . . . . . 25 2 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 . . . . . . . . . . . . . . . . . . . . . . 40 3 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. Contenuto v II Sperimentazione, progettazione e implementazione 59 4 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 . . . . . . . . . . . . . . . . . . . . . . . . . 71 5 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6 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 . . . . . . . . . . . . . . . . . . . . . 94 III Risultati e conclusioni 97 7 Conclusioni e sviluppi futuri 98
  • 8. Contenuto vi 7.1 Sintesi dei risultati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.2 Sviluppi futuri ed estensioni . . . . . . . . . . . . . . . . . . . . . . . . . . 99 IV Appendici 100 A Piattaforma Freescale MC13213 101 Bibliografia 103
  • 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. 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. 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. 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. 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. Ai miei genitori, per avermi dato questa opportunit`... a xii
  • 15. Introduzione La possibilit` di creare reti a basso costo e ad alta densit` come le Wireless Sensor a a Network (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 a con la caratteristica, inoltre, di non dipendere da un’infrastruttura di rete fissa, le hanno rese ormai l’icona dell’Ubiquitous Computing. La funzione principale di una WSN ` quella di riportare eventi relativi all’ambiente e controllato, 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 a differenti dal controllo e dal monitoraggio; si pensi ad esempio al contributo informativo apportato 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 e stata superata, sia in quale punto preciso della rete, dato che informazioni non associate alla 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 di interesse possano divenire di estrema importanza in problemi di SLAM (Simultaneous Localization and Mapping) [DWB06a, DWB06b] oppure per diminuire i tempi nella ricerca di oggetti o zone particolari. Si comprende inoltre, quanto ci` sia di interesse o primario in ambienti indoor (industrie, uffici, abitazioni), o dove comunque non c’` la e possibilit` 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 a priori, in quanto gradualmente l’area sconosciuta viene ridotta, fino a permettere di trovare l’obiettivo. Se ne deduce facilmente che, se non si hanno informazioni ag- giuntive sulla localizzazione dell’obiettivo, si procede praticamente per tentativi, con una 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. In tali sistemi, l’esplorazione procede ad ogni passo visitando una frontiera, diminuendo in 1
  • 16. Introduzione 2 questo modo lo spazio di ricerca. Il problema principale, risiede nel fatto che la selezione della frontiera viene effettuata casualmente o al massimo con strategie greedy (scegliendo ad esempio quella pi` vicina al robot), dato che in molti casi non si hanno altre sorgenti u informative per procedere diversamente. Lo scopo di questa tesi ` l’integrazione di sistemi di robotica mobile con gli strumenti e e le potenzialit` offerte dalle WSN, mediante un’applicazione di supporto alla localizza- a zione. L’approccio utilizzato in questo lavoro di tesi sfrutta le informazioni sulla qualit` a del segnale radio (Link Quality Indicator ) ricevuto dai nodi della WSN, installati a bordo del robot, per guidarne l’esplorazione al fine di raggiungere zone di interesse segnalate da altrettanti dispositivi. Come vedremo, alla rete possono appartenere sia i robot, sia altri nodi che possono segnalare oggetti o essere rilasciati durante l’esplorazione stessa, con la funzione di landmark [SN04]. I dispositivi selezionati per la realizzazione del sistema seguono 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 e presso il laboratorio RFID-Lab, dell’Universit` di Roma “Sapienza”, in cui sono stati a considerati 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, a SKOM06, 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 sono stati realizzati test sia in ambienti outdoor che indoor, orientati a dimostrare quanto gi` noto in letteratura e a far comprendere le modalit` con cui affrontare un problema a a di localizzazione basato su dispositivi wireless. L’approccio proposto tenta di applicare i meccanismi alla base della localizzazione, al problema dell’esplorazione, presentandosi come un algoritmo in grado di guidare il robot verso l’obiettivo della ricerca, mediante un’euristica che si basa sul principio elementare per cui la potenza del segnale decresce con la distanza. In questo modo, anche se ` difficile ricavare esattamente la distanza che e separa trasmettitore e ricevitore, ` possibile stimare qualitativamente quanto si ` vicini e e alla sorgente del segnale. Di conseguenza, la ricerca che prima era cieca, si trasforma in ricerca 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 u greedy. La possibilit` di effettuare un’esplorazione guidata aiuta, oltre che a diminuire i a tempi di ricerca, anche ad aumentare l’autonomia energetica del robot, evitando zone dell’ambiente non rilevanti ai fini della missione. Uno degli scenari mediante il quale si pu` comprendere l’utilit` dell’idea presentata, ` l’impiego del sistema in problemi di o a e Search and Rescue [HSI+ 99], in cui i robot mobili forniscono il loro supporto a squadre di soccorritori umani, in operazioni di ricerca e salvataggio in ambienti che hanno subito
  • 17. Introduzione 3 ` catastrofi o devastazioni, ad alto rischio per i soccorritori stessi. E facile immaginare come informazioni sulla localizzazione di punti di interesse (ostacoli, feriti, punti di raccolta, altri robot) possano divenire di estrema importanza per diminuire i tempi di esplorazione di aree devastate, con la conseguenza di aumentare la probabilit` di salvare a anche vite umane. Inoltre, considerate le possibilit` di miniaturizzazione che possono a essere raggiunte nella produzione di dispositivi ZigBee, possiamo pensare ad uno scenario in cui ogni persona pu` indossare un ricevitore e che, nel caso di incidenti o devastazioni, o esso possa essere interrogato, in modo da facilitare il raggiungimento della vittima stessa. Ad esempio, tali situazioni possono verificarsi in impianti industriali ad alto rischio, dove sono potenzialmente possibili incendi, crolli strutturali o emissioni di sostanze tossiche. Altri possibili esempi di applicazione, in cui l’approccio pu` portare i suoi vantaggi, o sono 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 robot mobile equipaggiato con un dispositivo wireless ZigBee di un punto di interesse dove ` e presente 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 e estendibile a scenari di tale tipologia. Il sistema ` stato implementato in C++, su piat- e taforma Unix, sotto forma di moduli indipendenti per il framework per robot mobili SPQR-RDK [FGI05]. La tesi ` stata sviluppata presso il laboratorio SIED (Sistemi e Intelligenti per le Emergenze e la Difesa civile), nato dalla collaborazione tra l’Istituto Superiore 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 a di metodologie, tecniche e strumenti prototipali da utilizzare in operazioni di soccorso. Problematiche affrontate La 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 sono stati 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. 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 conseguiti La grande quantit` di dati sperimentali, raccolti durante l’analisi delle prestazioni tra- a smissive dei dispositivi, in ambienti indoor e outdoor, ha permesso di ritrovare i risultati teorici 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, basato sulla qualit` del segnale ricevuto dai dispositivi di una WSN. a Le sperimentazioni effettuate, sia in simulazione che in ambiente reale, dimostrano l’efficacia dell’approccio proposto. L’aggiunta dell’informazione sulla qualit` del segnale, a consente di risolvere i problemi di ricerca in modo informato, evitando l’esplorazione di zone dell’ambiente eccessivamente distanti dall’obiettivo. La scelta delle frontiere viene effettuata in base alla vicinanza con la sorgente del segnale, sostituendo strategie greedy che spesso non creano vantaggi considerevoli. In questo modo, ` sicuramente e possibile diminuire i tempi necessari all’individuazione di punti di interesse nella mappa e incrementare notevolmente l’autonomia energetica del robot utilizzato per l’esplorazione. Ovviamente, l’euristica pensata pu` essere raffinata, tenendo in considerazione anche o informazioni 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. Introduzione 5 del LQI). L’idea presentata pu` inoltre essere estesa a scenari multi-robot, agevolando o la soluzione di problemi come il rendezvous [DR97] o il coordinamento durante alcune fasi dell’esplorazione multiagente [ZKNN07]. Traccia dell’esposizione L’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. 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. Parte I Concetti fondamentali e stato dell’arte 7
  • 22. Capitolo 1 Robot per l’esplorazione autonoma I 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 parti di automobili. Attualmente essi sono usati ampiamente in applicazioni ripetitive e di precisione, come il montaggio di componenti su circuiti stampati; ad ogni modo questi robot sono immobili. La possibilit` di avere robot mobili pu` espandere notevolmente gli scenari in cui essi a o possono fornire il loro contributo. Una delle applicazioni pi` importanti della robotica u mobile consiste nell’esplorazione di ambienti non noti a priori, da parte di uno o pi` u veicoli autonomi. Tale esigenza sorge tipicamente ogni qualvolta un robot mobile venga impiegato per missioni in ambienti sconosciuti od ostili, in cui l’intervento umano sia difficile o pericoloso (sorveglianza, demining, soccorso, esplorazione planetaria, ecc.). La capacit` di movimento per un robot introduce nuove problematiche: esso deve a conoscere la sua corretta posizione rispetto al mondo reale, in modo da poter scegliere in modo razionale quale azione compiere. Mediante l’esplorazione autonoma ` possibile co- e struire 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- e deocamere, ecc.). Con l’ausilio della mappa costruita ` possibile coordinare i movimenti e e gli spostamenti del robot al fine di raggiungere delle zone particolari nell’ambiente di interesse. Al raggiungimento di questa autonomia comportamentale concorrono quindi numerosi fattori, che vanno dalla capacit` di estrarre informazioni significative dai dati a sensoriali e di costruire un modello (eventualmente dinamico) dell’ambiente circostan- te, a quella di elaborare, talvolta impiegando sistemi inferenziali, una linea di azione praticabile, 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. Capitolo 1. Robot per l’esplorazione autonoma 9 inoltre introdotte alcune conoscenze di base sui robot idonei all’esplorazione autonoma, mettendo in evidenza l’importanza dei sensori impiegati e dei moduli software necessari alla navigazione. Una sezione ` riservata alla descrizione di alcuni approcci esistenti per e effettuare esplorazione autonoma, mentre la parte conclusiva ha lo scopo di presentare gli strumenti software disponibili, come i simulatori e il framework per robot mobili, SPQR-RDK. 1.1 Possibili scenari Un robot mobile, in grado di esplorare autonomamente un ambiente, introduce sicura- mente nuove possibilit`. Nel seguito vengono descritti alcuni scenari significativi, in cui a essi forniscono il loro importante contributo, sostituendo effettivamente o potenzialmente operatori 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, e col tentativo di promuovere l’intelligenza artificiale, la robotica e altri campi di ricerca correlati.
  • 24. Capitolo 1. Robot per l’esplorazione autonoma 10 Esplorazioni 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 robot Le caratteristiche funzionali e di mobilit` che un robot pu` possedere dipendono quasi a o totalmente dall’ambiente in cui esso si trover` ad operare. Una classificazione comune ` a e la 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. a Unmanned 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. e 1.2.1 Robot del laboratorio SIED In questa sezione vengo descritti i principali robot presenti nel laboratorio SIED, che sono 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 USB collegato ad un notebook 12 IBM, su cui viene eseguito il software di navigazione e l’interfacciamento mediante Player (descritto al paragrafo 1.5.1). Possiede due ruote motrici indipendenti nella parte anteriore e una ruota castor omnidirezionale nella parte posteriore.
  • 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 e suo nome dalla forma dell’onboard PC. Il suo equipaggiamento include un laser scanner Sick 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. Capitolo 1. Robot per l’esplorazione autonoma 12 1.3 Moduli funzionali di un robot esploratore In figura 1.3 ` rappresentata una schematizzazione che rappresenta bene le relazioni e tra 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 costruiti modelli rappresentativi dell’ambiente (come ad esempio mappe) e ricavate informazioni sulla 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 raggiungere l’obiettivo globale prefissato, i moduli di pianificazione provvedono a stabilire i compiti da assegnare ai componenti di basso livello, come gli attuatori, in modo da garantire la corretta navigazione del robot verso i vari target. Va notato che per svolgere attivit` a di locomozione autonoma ` necessario risolvere una grande variet` di problemi, come il e a controllo del movimento (motion control ), il superamento di ostacoli e il rilevamento di situazioni 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, fornendo una panoramica che aiuter` a comprendere concetti utilizzati nell’ambito di tutta la a tesi.
  • 27. Capitolo 1. Robot per l’esplorazione autonoma 13 1.3.1 Sensori e tecniche per l’esplorazione Una delle funzioni pi` importanti funzionalit` di un sistema autonomo ` acquisire infor- u a e mazioni sull’ambiente che lo circonda, utilizzando misurazioni provenienti da vari sensori ed estraendone informazioni significative. Esiste un’ampia variet` di sensori impiegati a nei robot mobili; alcuni misurano semplici valori come temperature esterne o velocit` di a rotazione dei motori. Altri, pi` sofisticati, possono essere usati per ricavare la posizione u del 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 a ristiche dell’ambiente impreviste, per cui le funzionalit` di sensoristica sono alquanto a critiche. Inoltre, dato che ogni sensore acquisisce informazioni incerte sull’ambiente, so- no necessari strumenti stocastici per mantenere limitate ed accettabili la rumorosit` dei a dati. 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- u che utilizzate per l’esplorazione e la navigazione; gran parte di essi sono presenti del laboratorio SIED e installati sui robot utilizzati per gli esperimenti descritti in questa tesi. 1.3.1.1 Odometria L’odometria ` uno dei metodi pi` utilizzati per conoscere la posizione di robot mobili, in e u quanto fornisce una discreta precisione su brevi distanze, non ha alti costi di applicazione ed ` facilmente integrabile con altri metodi di localizzazione che invece danno misure e pi` accurate. u L’idea di base della ricostruzione odometrica ` quello del calcolo della nuova posizione e del robot in base alla strada percorsa rispetto alla posizione precedente (dead-reckoning). Il calcolo avviene tramite l’integrazione nel tempo dell’informazione sul movimento. Per ricavare i valori da integrare, l’odometria utilizza degli encoder, attaccati agli assi delle ruote o all’armatura del motore, che vanno a misurare la velocit` di rotazione delle ruote a e l’orientazione dello sterzo (basandosi sul principio che la rotazione compiuta da una ruota 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 proporzionalmente alla distanza percorsa. Gli errori dell’odometria possono essere sistematici (causati ad esempio da diametri delle ruote diseguali o disallineate) o non sistematici (movimento su terreno irregolare e slittamenti delle ruote).
  • 28. Capitolo 1. Robot per l’esplorazione autonoma 14 1.3.1.2 Sensori inerziali Come 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 e accelerometri; i primi misurano la velocit` di rotazione, i secondi invece l’accelerazione. a La navigazione inerziale si basa su misurazioni dinamiche, a breve termine, senza necessit` di avere informazioni esterne sulla dinamica del robot, poich´ i dati sono ricavati a e tramite misurazioni dirette. Il grosso svantaggio nell’impiego di sensori inerziali per`, ` o e dovuto al fatto che per ottenere l’orientazione e la posizione bisogna integrare una volta e due volte rispettivamente la velocit` di rotazione e l’accelerazione, generando quindi a errori in posizione che crescono in modo integrale col tempo (deriva). Come visto per l’odometria, la localizzazione mediante questo metodo non ` adatta a stime accurate per e un lungo periodo di tempo. 1.3.1.3 Sonar Il sonar ` un dispositivo che sfrutta la propagazione di onde sonore (spesso ultrasuo- e ni) per misurare la distanza da un oggetto. Come ` facile osservare in figura 1.4(b), e le 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 e distanza, 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. Capitolo 1. Robot per l’esplorazione autonoma 15 tipo di tecnica soffre molto dei fenomeni di riflessione (descritti al paragrafo 2.1.3) e ci` o dipende soprattutto dall’angolo con cui l’onda colpisce l’oggetto e dal materiale di cui esso ` composto. In movimento tali fenomeni sono ancor pi` amplificati e causano una e u stima abbastanza grossolana della distanza dagli ostacoli. Numerosi aspetti riguardanti l’esplorazione con il sonar e alcuni modelli probabilistici sono descritti in dettaglio in [TBF05]. 1.3.1.4 Laser scanner I laser scanner, chiamati talvolta anche laser rangefinder, possono essere pensati come dei piccoli sonar che utilizzano la luce invece del suono, per creare una mappa bidimensionale degli ostacoli che si trovano in prossimit` del robot. L’accuratezza, i consumi energetici a ridotti e i costi sempre pi` contenuti di questi sensori li rendono preferibili rispetto a u tutti 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- e si 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 (Field Of View). Per ogni emissione, si conosce la distanza e l’angolo rispetto al sensore, da cui 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 e massimo 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- e rente dell’energia del laser. Con la luce questo accade quando essa colpisce una superficie molto riflettente; ci` si verifica ad esempio con oggetti metallici, di legno lucido e, ov- o viamente, specchi. Inoltre, a differenza del sonar, i laser scanner non possono rilevare
  • 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 scanner materiali trasparenti come vetro, che talvolta pu` essere presente in quantit` significative o a in alcuni ambienti (come ad esempio i musei). 1.3.1.5 GPS L’utilizzo di GPS per la localizzazione outdoor ` una soluzione abbastanza comune quan- e do non sono presenti altri riferimenti e non ` richiesta precisione elevatissima. Il problema e principale del sistema GPS ` dovuto al fatto che il ricevitore deve avere comunicazione e con 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 e necessariamente 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 e probabile ricevere il segnale in modo affidabile. Ovviamente, anche la maggior parte degli spazi indoor ` inadeguata per l’impiego di GPS e per tali motivazioni, esso appare e adeguato solo in progetti di robotica mobile in ampie aree aperte o per essere installato su UAV. 1.3.1.6 Landmark I landmark sono oggetti con caratteristiche distintive che il robot pu` riconoscere at- o traverso il suo sistema sensoriale, ad esempio mediante visione artificiale [BB82]. In generale un landmark pu` avere una locazione fissa e nota a priori, in base al quale il o robot pu` stimare la sua posizione, e viene scelto in maniera tale da essere facilmente o distinguibile rispetto ad altri oggetti per forma o colore (ad esempio contrasta con lo sfondo). Esso pu` essere naturale, se ` un oggetto o una caratteristica gi` presente nell’am- o e a biente che si sta esplorando (come porte, lampade, ecc) o artificiale, se ` un marcatore che e deve essere posizionato, con il solo scopo di aiutare la navigazione del robot; per esempio forme geometriche (linee, poligoni) che possono includere informazioni addizionali (ad esempio sotto forma di codici a barre). Un vantaggio dei landmark artificiali rispetto a quelli naturali ` che date le loro caratteristiche, note a priori, si possono progettare e e costruire sensori ad hoc per quella determinata applicazione.
  • 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 modo tale 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 radiofrequenza e (RFID) per stabilire dei punti di coordinamento per squadre di robot, con lo scopo di suddividere in modo intelligente lo spazio di esplorazione dell’ambiente. 1.3.2 Localizzazione e mappe La 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 e quella di eventuali ostacoli. Ad esempio ci` ` vero per i moderni navigatori basati sul oe sistema GPS; quest’ultimo fornisce la posizione del ricevitore nel mondo reale, ma senza l’uso di una mappa questa informazione non pu` essere sfruttata adeguatamente per la o guida dell’autoveicolo fino alla destinazione. In problemi di complessit` pi` limitata, in a u cui l’ambiente ` gi` noto, il robot pu` essere istruito preventivamente mediante map- e a o pe metriche o topologiche. In generale, il problema di localizzazione con la conoscenza della mappa dell’ambiente o la stima della mappa a partire dalla conoscenza pi` o me- u no 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 a robot 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 robot possono non coincidere esattamente3 con l’ambiente in ogni istante a causa di molteplici fattori: si pensi alla presenza di oggetti e persone in movimento. In questo tipo di problemi, occorre considerare che mentre il robot cerca di creare la mappa, deve anche tenere conto della sua posizione, basandosi sulle percezioni dei suoi sensori. 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 e del robot vengano portate avanti concorrentemente (problema chiamato in letteratura Simultaneous Localization and Mapping - SLAM [DWB06a, DWB06b]), dato che le due procedure sono fortemente correlate tra loro. Chiaramente, i sensori giocano un ruolo fondamentale in tutte le forme di localizzazione; ` proprio a causa dell’imprecisione e e dell’incompletezza di questi ultimi che la quasi totalit` degli approcci a questo problema a sono di natura probabilistica o statistica [CDNDW01, TFB98, SAY99]. 3 Si pensi alle conseguenze che si hanno quando le mappe del proprio navigatore satellitare non sono correttamente aggiornate!
  • 32. Capitolo 1. Robot per l’esplorazione autonoma 18 Nei paragrafi seguenti verranno brevemente analizzate solo le tecniche principali per la realizzazione di mappe (mapping), mentre verr` tralasciato il problema della loca- a lizzazione del robot rispetto all’ambiente, in quanto problema troppo specifico rispetto alle argomentazioni di questa tesi (per una trattazione abbastanza completa si consulti [TBF05]). Va comunque notato che ogni differente approccio per il mapping si presta a rappresentare pi` o meno correttamente le diverse tipologie di ambienti (strutturati, u semistrutturati o destrutturati). 1.3.2.1 Feature maps In generale, una mappa di un ambiente ` una lista di oggetti con associate, le loro e posizioni 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 a associata la sua posizione geometrica. Spesso si tratta di mappe metriche, caratterizzate con gli elementi che definiscono l’ambiente come linee, angoli, punti e parametrizzate in funzione delle dimensioni, colore. In caso di ambienti strutturati (ad esempio un ufficio), le feature possono essere estratte dalle misurazioni di sonar, laser scanner o da sistemi di visione artificiale. In caso contrario, l’individuazione e il matching di feature non ` sempre realizzabile e di conseguenza tali mappe non trovano molte applicazioni in e ambienti destrutturati (ad esempio un edificio dopo un crollo). 1.3.2.2 Occupancy grid Nelle occupancy grid, l’ambiente ` suddiviso in una griglia pi` o meno accurata, dove e u ogni cella contiene un valore che rappresenta la probabilit` che essa sia occupata o meno a da un oggetto. Queste mappe possono essere rese pi` o meno dettagliate scegliendo la u risoluzione di ogni singola cella. Ovviamente, poich´ il numero di celle cresce il modo e quadratico con le dimensioni dell’ambiente da descrivere, lo spazio di memoria necessario per 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- a babilit` condizionate. Tali mappe hanno il vantaggio di descrivere, oltre agli oggetti a presenti nell’ambiente, anche lo spazio libero, risultando adeguate alla navigazione di robot mobili. Un esempio ` riportato in figura 1.6(a). Sempre in riferimento alla nota- e zione 1.1, l’elemento generico mn ` riferito ad una particolare posizione sulla mappa; ad e esempio nel caso bidimensionale ` pi` chiaro indicare mx,y anzich´ mn per esplicitare il e u e fatto che mx,y ` una propriet` di specifiche coordinate (x, y) del mondo reale. e a
  • 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 mappe 1.3.2.3 Mappe topologiche La 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 a una stanza o un corridoio) tra loro connesse (ad esempio mediante porte o scale). Nel grafo che viene costruito, i nodi rappresentano i luoghi e gli archi le connessioni per raggiungerli, risultando in una notazione molto compatta rispetto alle mappe metriche e pi` gestibile computazionalmente (fig. 1.6(b)). u Tuttavia le mappe topologiche hanno anche alcuni svantaggi: in particolare sono solitamente limitate agli ambienti che possono essere descritti per mezzo di semplici forme geometriche. Gli ambienti reali solitamente sono complessi e quindi la lista delle forme degli oggetti ` tipicamente incompleta. Un modo per aggirare questa limitazione ` e e quella di utilizzare mappe ibride, che rappresentano alcune parti dell’ambiente per mezzo di oggetti e altre utilizzando delle rappresentazioni sullo stile delle occupancy grid. 1.3.3 Navigazione Per un robot mobile, i moduli di navigazione combinano tutti quelli visti precedentemen- te (sensoristica, localizzazione, mapping), al fine di decidere passo passo la coordinazione dei movimenti e quindi dei comandi da fornire agli attuatori. Oltre a garantire che il robot segua il path scelto fino al target, la navigazione deve saper affrontare scenari in 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 e locali. I primi sono visti come problemi di pianificazione a lungo termine, in cui viene considerata l’intera rappresentazione dell’ambiente, rilassando alcuni vincoli (come ad esempio l’esatta forma del robot); i secondi dipendono fortemente dalle letture in tempo
  • 34. Capitolo 1. Robot per l’esplorazione autonoma 20 reale 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 a applicate a sistemi fisici come i robot mobili, essi sono complementari e ognuno ` critico e per il successo dell’altro. Il problema di navigazione richiede l’esecuzione di un insieme di azioni (o un piano) per raggiungere il target. Durante l’esecuzione, il robot deve tuttavia reagire ad eventi imprevisti in modo tale da poter garantire il raggiungimento dell’obiettivo globale. Senza reazione, lo sforzo della pianificazione non fornisce i risultati sperati dato che il robot non raggiunger` fisicamente il goal, bloccandosi prima, mentre a senza pianificazione, le funzioni di reazione non riusciranno mai a guidare il robot verso un obiettivo distante. 1.3.3.1 Pianificazione Un 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 e partenza (start) ad un punto di arrivo (target), senza collidere con ostacoli dell’ambiente circostante. Esso ` essenzialmente un problema di ricerca, in cui viene scelta una tra le e sequenze di configurazioni che portano il robot dallo start al target, possibilmente quella che minimizza la lunghezza del cammino. Lo spazio di ricerca ` l’insieme di tutte le e possibili 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 a ricerca ` una delle maggiori difficolt` nel path planning. e a Una prima distinzione tra path planner pu` essere fatta tra quelli deliberativi e reat- o tivi. La pianificazione deliberativa pu` essere usata nelle situazioni in cui si assumono o come 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 opportuno indice di prestazione. La pianificazione reattiva ` un requisito fondamentale per i robot e autonomi 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 u nell’ambiente. In generale, occorre combinare questi due tipi di approcci, utilizzando un pianificatore deliberativo basato sulla mappa dell’ambiente disponibile e poi, quando il robot sta inseguendo la traiettoria pianificata, utilizzare un pianificatore reattivo in grado di evitare il contatto con ostacoli precedentemente ignoti, mediante tecniche di obstacle avoidance. I metodi utilizzati per il path planning possono essere classificati in base al tipo di decomposizione effettuata sull’ambiente, trasformandolo dal dominio nel continuo a quello discreto. I metodi principali sono quelli a roadmap, a decomposizione di celle e a campi di potenziale [SN04, Doy95].
  • 35. Capitolo 1. Robot per l’esplorazione autonoma 21 Gli approcci a roadmap cercano di stabilire la connettivit` da un insieme di configu- a razioni libere per il robot, per formare una rete di curve o linee unidimensionali chiamate roadmap. La ricerca del path si riduce al problema di trovare una connessione tra i punti start e target sulla roadmap, cercando quella ottima. I metodi basati su decomposizione di celle sono ampiamente utilizzati e prevedono di 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 a in cui i nodi sono le celle libere e gli archi mostrano appunto l’adiacenza tra esse. In questo grafo viene cercato il path, seguendo le celle libere dal punto di partenza a quello di arrivo. Il problema principale ` che tutte le celle e il grafo di connettivit` devono e a essere costruiti, prima che il path venga trovato, e per alti gradi di libert` del robot, la a dimensione dello spazio di ricerca diventa rapidamente intrattabile. Gli approcci a campi di potenziale utilizzano generalmente l’idea della presenza di un potenziale repulsivo vicino agli ostacoli e attrattivo vicino all’obbiettivo. Il gradiente dei potenziali 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 e locali, causando la presenza di soluzioni non complete. 1.4 Esplorazione autonoma L’esplorazione in autonomia di un’area sconosciuta ` uno dei problemi fondamentali della e robotica mobile. Per la costruzione di un modello dell’ambiente consistente, il robot deve 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 al paragrafo 1.3.1. L’esplorazione risulta necessaria in molte applicazioni; per la costruzione della mappa il robot deve esplorare l’ambiente e la stessa cosa accade in scenari di Search and Rescue, per trovare persone in situazioni di pericolo. Soprattutto per cercare un punto di interesse in un ambiente non noto a priori, ` necessario effettuare esplorazione e cieca 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’ambiente velocemente, 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 da ottimizzare, 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 prossimo target 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. Capitolo 1. Robot per l’esplorazione autonoma 22 che 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, si basano su wall-following [Mat92, XKC97], risultando validi solo in ambienti di limitata complessit` strutturale, altri ancora sul riconoscimento di landmark [TK93]. a La scelta della frontiera spesso viene effettuata tenendo in conto utilit` e costi del- a la 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 o frontiera [SB03], mentre il costo pu` considerare gli spostamenti o le rotazioni necessarie o al robot per raggiungerla [Yam97, MTK]. Tipicamente vengono utilizzate delle strategie greedy, selezionando il target in modo che l’area potenziale ricoperta sia massima e con minor costo. In altri casi si considera la quantit` di informazione ottenibile da differenti a viewpoint (problema chiamato next-best-view [GBL01]). 1.5 Simulatori Alla complessit` di un robot mobile contribuisce sicuramente l’alto numero di sensori a presenti e la capacit` di movimento e interazione nell’ambiente. Per uno sviluppatore, a la possibilit` di testare i propri algoritmi in un sistema di simulazione, comporta sicu- a ramente molti vantaggi in termini di costi e tempi di implementazione. Per non parlare delle opportunit` che nascono in ambito multi-robot, in quanto ` possibile avere con- a e temporaneamente presenti diverse tipologie di robot, considerando che tale scenario non sempre ` realizzabile nella pratica. e Durante la realizzazione della tesi ` stato possibile vederne in dettaglio sostanzial- e mente due: l’accoppiata Player/Stage [GVS+ 01] e USARsim [WLG03]. Essi verranno brevemente descritti nelle sezioni seguenti. 1.5.1 Player/Stage/Gazebo La piattaforma Player/Stage ` conseguenza di un progetto open-source, iniziato nel 2000 e ad 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 o essere considerata come due componenti indipendenti di un ambiente di simulazione. Player ha un’architettura che consente di controllare con un paradigma client/server il robot e i suoi sensori/attuatori, mediante messaggi scambiati tramite TCP/IP. Esso fornisce un’interfaccia, indipendente dal linguaggio di programmazione, nei confronti di dispositivi hardware, come laser scanner e sonar, grazie ai numerosi driver sviluppati dalla comunit`. a Stage invece pu` essere considerato come una plugin per Player e permette di si- o mulare un ambiente multi-agente con una rappresentazione bidimensionale, utilizzando ad esempio da una mappa bitmap. Esso comprende un insieme di dispositivi che rende
  • 37. Capitolo 1. Robot per l’esplorazione autonoma 23 disponibili a Player e che possono essere assemblati per costituire un robot personaliz- zato: questa particolarit` permette di sperimentare in simulazione dispositivi che non a sono disponibili sul robot nella realt`. Inoltre i client solitamente non percepiscono la a differenza tra i dispositivi reali e quelli equivalenti simulati da Stage e ci` permette di o passare semplicemente, e spesso senza modifiche, dal mondo reale a quello simulato e viceversa. ` E presente anche un’estensione (Gazebo), che consente di ampliare le possibilit` di a Player ad ambienti tridimensionali. (a) Player/Stage (b) USARsim Figura 1.7: Simulatori per robot mobili 1.5.2 USARsim USARsim (Unified System for Automation and Robot Simulation) ` un simulatore ad e elevato realismo, orientato agli ambienti tridimensionali e soprattutto a scenari di soc- corso robotico, in particolare in ambito Urban Search And Rescue (USAR). Esso ` e basato 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 una modellazione fisica realistica. In USARsim sono presenti numerose riproduzioni di ambienti con disastri, modelli di robot (sia commerciali che sperimentali) e sensori. Inoltre, ` possibile costruire il proprio e ambiente di simulazione, controllando tutto tramite una API basata su socket per testare gli algoritmi e interfacce utente, senza necessit` di programmazione addizionale. a Esso ` inoltre il simulatore di riferimento utilizzato nella competizione RoboCup e Rescue Virtual [TKT+ 00], data la sua capacit` di riprodurre realmente scenari con a differente grado di destrutturazione, per valutare le prestazioni di squadre di robot nella cooperazione, ricerca di vittime e mapping dell’ambiente.
  • 38. Capitolo 1. Robot per l’esplorazione autonoma 24 1.6 Il framework SPQR-RDK La piattaforma SPQR-RDK (Software Per Qualunque Robot-Robot Development Kit) ` stata progettata e successivamente estesa, all’interno del Dipartimento di Informati- e ca e Sistemistica “Antonio Ruberti” (DIS), dell’Universit` di Roma “Sapienza”. Essa a permette una semplicit` di sviluppo e debugging, con al contempo buone capacit` di a a modularizzazione dei nuovi componenti che gradualmente vengono implementati. Essa ` e composta 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 per l’operatore. Inoltre, come il nome stesso indica, ` possibile impiegarla in diversi sistemi e robotici e soprattutto nella robotica mobile. Attualmente l’SPQR-RDK viene impiegato nella competizioni Robocup Soccer e Rescue, ed ` possibile interfacciarlo a vari tipi di e robot (dai Pioneer della ActiveMedia Robotics agli Aibo della Sony). SPQR-RDK ` sviluppato interamente in C++ ed ` disponibile per piattaforme e e Unix (Linux, Mac OS X). Per una descrizione generale si consulti [FGI05]. Nei pa- ragrafi seguenti viene illustrata la struttura del framework, mettendone in evidenza le caratteristiche principali. 1.6.1 Agenti e moduli In SPQR-RDK, l’entit` principale ` l’agente, un processo software che rappresenta il a e robot. 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 a eseguire differenti task concorrentemente e di creare gerarchie produttore-consumatore. Ad esempio, un generico agente, pu` avere un modulo dedicato al ricevere i dati prove- o nienti da odometria e laser scanner, un modulo che con tali informazioni ha il compito di eseguire lo scan-matching per stimare la posizione dell’agente e infine un modulo che utilizzando 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 e sufficiente scrivere un file di configurazione XML-based che contiene l’elenco dei moduli impiegati, settando opportunamente i relativi parametri. 1.6.2 Repository Lo scambio di dati tra moduli avviene per mezzo di una memoria condivisa, denominata repository. Nel repository si trovano tutte le propriet` che un modulo condivide con gli a altri. Esse sono organizzate in una struttura gerarchica ad albero, individuate tramite uno 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: e rdk://agent/laserModule/laserQueue.