`
                  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.
Capitolo 1. Robot per l’esplorazione autonoma                                              25


opportuna notazione sul file di configurazione. Tale accesso attraverso i collegamenti
risulta totalmente trasparente al programmatore, che vede la propriet` collegata come
                                                                     a
locale al suo modulo.


1.6.3    Concorrenza

Lavorando in un ambiente multi-thread bisogna prestare particolare attenzione a pro-
blemi di sincronizzazione e concorrenza tra i differenti moduli. A run-time ogni modulo
(thread) pu` trovarsi in attesa di molteplici eventi, come lo sblocco di un semaforo o
           o
di un mutex, la scadenza di un timer o l’aggiornamento di una propriet`. Inoltre, `
                                                                      a           e
possibile prevedere differenti tipi di accesso condiviso, tramite l’oggetto session, che ha
la responsabilit` di governare il corretto utilizzo del repository; ` possibile impostare
                a                                                   e
il locking e unlocking automatico o manuale di propriet`, a seconda delle esigenze del
                                                       a
programmatore.


1.6.4    Comunicazioni tra agenti

Allo stesso modo in cui avviene lo scambio dati tra diversi moduli, anche la condivi-
sione di informazioni tra diversi agenti avviene mediante il repository. Essa pu` essere
                                                                                o
realizzata mediante condivisione di propriet` o invio e la ricezione di messaggi.
                                            a
   Nel primo caso, un agente (subscriber) interessato ai dati di un altro (publisher): egli
indica il proprio interesse sempre mediante un collegamento alla propriet`, specificando
                                                                         a
nell’URL anche il nome dell’agente. Il subscriber pu` ricevere notifiche periodicamente
                                                    o
o in seguito ad un aggiornamento della propriet`.
                                               a
   L’invio e la ricezione di messaggi viene supportato da appositi oggetti mailbox, con
cui ` possibile scambiarsi informazioni in modo asincrono.
    e


1.6.5    Strumenti di supporto

RConsole

RConsole ` una potente interfaccia grafica che permette di avere sotto controllo lo stato
         e
dei moduli in esecuzione, visualizzando mediante appositi widget i valori dei parametri,
immagini, mappe e video prelevato da videocamere. Alcuni speciali controlli, permettono
di fornire in tempo reale comandi al robot, come ausilio a task eseguiti in teleoperazione.


Logging e reporting

In un framework di tale complessit`, non possono mancare strumenti avanzati di logging
                                  a
e di reporting, utilizzati ad esempio per esportare dati provenienti da sensori e utilizzabili
in altri software di elaborazione.
Capitolo 1. Robot per l’esplorazione autonoma                                         26


Interfacce con i simulatori

Alcuni moduli dell’SPQR-RDK permettono di interfacciarsi con i pi` comuni simulatori
                                                                 u
per la robotica mobile, come USARsim e la piattaforma Player/Stage/Gazebo (par.
1.5.1). Tutto avviene sempre in maniera trasparente, impostando i diversi parametri
dal file di configurazione e mantenendo la stessa interfaccia di accesso, in modo che altri
moduli possono continure ad interagire senza particolari modifiche nel codice.
Capitolo 2

Localizzazione basata su
dispositivi wireless

La localizzazione di un dispositivo all’interno di WSN ` un aspetto sempre pi` rilevante
                                                       e                     u
[MFA07], in quanto consente di associare alla misurazione il luogo in cui si ` verificata.
                                                                             e
Ovviamente la precisione con cui la posizione viene rilevata dipende dallo specifico con-
testo applicativo: ad esempio per localizzare persone all’interno di un ufficio ` sufficiente
                                                                              e
sapere in quale stanza si trovano, mentre in uno scenario di monitoraggio di merci in un
magazzino si potrebbe essere interessati in quale particolare imballaggio ` stata superata
                                                                          e
una soglia di temperatura critica. L’informazione sulla posizione ` importante anche in
                                                                  e
fasi di amministrazione e configurazione, considerato l’elevato numero di nodi che la rete
pu` contenere1 .
  o
      I differenti metodi di localizzazione si differenziano oltre per la precisione che riesco-
no a raggiungere, anche per la complessit` richiesta per implementarli. Alcuni di questi
                                         a
fanno delle assunzioni sulla struttura dell’ambiente (indoor/outdoor), sulla configurazio-
ne della rete (ad esempio a griglia) o sulla presenza di nodi con posizione nota a priori
(detti beacon).
      Si pu` facilmente immaginare come, l’aggiunta di informazioni sulla localizzazione
           o
utilizzando una WSN, possa essere agevolmente integrata su una squadra di robot mobili,
fornendo indicazioni sulla posizione che possono risultare utili sia in fase di creazione
di una mappa globale, sia per coordinare l’esplorazione dell’ambiente da parte della
squadra. In questo modo, ogni robot, pu` avere una visione globale del problema,
                                       o
riuscendo ad evitare azioni che non creano vantaggio per il raggiungimento dell’obiettivo,
come ad esempio visitare una zona gi` esplorata.
                                    a
      Lo scopo principale di questo capitolo, ` quello di mostrare lo stato dell’arte nei
                                              e
metodi di localizzazione wireless, in particolar modo utilizzando segnali radio. Lo studio
  1
      In casi particolari, una WSN, pu` essere composta da diverse migliaia di nodi
                                      o




                                                   27
Capitolo 2. Localizzazione basata su dispositivi wireless                                             28


effettuato, ha permesso inoltre di comprendere in dettaglio i problemi e i fenomeni fisici
da tenere in considerazione nella realizzazione di un sistema di localizzazione.


Localizzazione wireless
La localizzazione wireless ` implementata principalmente utilizzando le tre seguenti
                           e
tecnologie:

Infrarossi L’infrarosso ` una radiazione elettromagnetica con una lunghezza d’onda
                        e
      maggiore della luce visibile, ma minore delle onde radio. Molti oggetti come
      persone, motori di veicoli e aerei generano e rilasciano calore, e come tali, sono
      particolarmente visibili alle lunghezze d’onda infrarosse rispetto agli oggetti sullo
      sfondo. Il problema principale di questo tipo di localizzazione ` l’impossibilit` di
                                                                      e               a
      oltrepassare muri ed ostruzioni. Inoltre, in ambienti indoor, si aggiunge il disturbo
      provocato dall’illuminazione artificiale; la portata di un sistema a infrarossi non
      supera i 5 metri, sebbene con una buona precisione (qualche centimetro).

Ultrasuoni Sebbene gli ultrasuoni lavorino a basse frequenze (tipicamente sotto i 20
      kHz), essi forniscono una buona precisione per la localizzazione a una bassa ve-
      locit` di propagazione del suono (343 m/s). I loro vantaggi sono principalmente
           a
      la semplicit` e il basso costo. Gli ultrasuoni comunque, non penetrano i muri,
                  a
      vengono riflessi dalla maggior parte degli ostacoli presenti in ambienti indoor e
      variazioni di temperatura possono influenzarne le performance. Il range di utilizzo
      pu` oscillare tra i 3 e i 10 metri, con una risoluzione anche al centimetro.
        o

Radiofrequenze Rispetto alle tecnologie citate precedentemente, i segnali radio posso-
      no penetrare la maggior parte dei materiali da costruzione, riuscendo ad ottenere
      un ottimo range in ambienti indoor rispetto agli infrarossi e agli ultrasuoni. Pur-
      troppo questo tipo di localizzazione risente di fenomeni di attenuazione, rifrazione,
      diffrazione e multipath che verranno approfonditi nel paragrafo 2.1.

Di seguito, verranno presentati innanzitutto i diversi fenomeni fisici che si verificano nella
propagazione del segnale elettromagnetico e, successivamente, vari approcci al proble-
ma di localizzazione, mettendo in evidenza le possibilit` di applicabilit` degli stessi e le
                                                        a                a
problematiche con il quale devono confrontarsi. Verranno considerati esclusivamente gli
approcci basati sulla propagazione del segnale radio, in quanto in ambienti indoor, sono
gli unici che non richiedono la condizione di Line-of-Sight (LoS)2 e risentono relativa-
mente poco delle variazioni di temperatura e illuminazione. Considerando che spesso la
posizione trovata ` solo approssimata, si parla anche di stima di localizzazione (location
                  e
estimation).
    2
      Ovvero la propagazione del segnale elettromagnetico secondo una linea retta immaginaria che collega
il trasmettitore e il ricevitore
Capitolo 2. Localizzazione basata su dispositivi wireless                                              29


2.1      Fenomeni nella propagazione radio
Nella localizzazione basata su segnali radio, ` importante conoscere le propriet` di propa-
                                              e                                 a
gazione della radiazione elettromagnetica. Fenomeni come attenuazione, rifrazione, scat-
tering e diffrazione hanno un ruolo rilevante, soprattutto in ambienti urbani o indoor. Le
sezioni successive si occupano di descrivere gli aspetti fondamentali della propagazione
di onde radio, analizzando anche alcuni modelli di propagazione.


2.1.1     Attenuazione dello spazio libero

L’attenuazione dello spazio libero (free-space loss), rappresenta la perdita di potenza dal
parte del segnale elettromagnetico che si ottiene in condizioni di LoS attraverso il vuoto,
senza nessun ostacolo che causi riflessione, assorbimento o diffrazione.
    Un’antenna isotropa trasmette una potenza Ptx con la stessa intensit` in tutte le
                                                                        a
direzioni, ma la potenza riguarda un’area sempre maggiore man mano che l’onda si
allontana dall’antenna. Essendo 4πr2 la superficie della sfera di raggio r, la potenza S
che attraversa un m2 di superficie sferica ortogonale alla direzione di propagazione `:
                                                                                    e

                                                     Ptx
                                              S=         .
                                                    4πr2

Tutte le antenne reali hanno tutte un guadagno Gtx per ogni direzione di propagazione, di
cui va tenuto conto nel calcolo dell’energia irradiata in quella direzione, per cui la potenza
prodotta da un’antenna reale, che attraversa l’area di un m2 normale alla direzione
di propagazione, risulta, di fatto, moltiplicata per il guadagno di detta antenna nella
direzione della propagazione:
                                                  Gtx · Ptx
                                            S=              .
                                                   4πr2
Volendo calcolare poi la potenza Prx raccolta da un’antenna di area equivalente 3 :

                                                    λ2 · Grx
                                           Aeq =             ,
                                                       4π

dove λ ` la lunghezza d’onda, si ottiene:
       e

                                      Gtx · Ptx λ2 · Grx   Ptx · Gtx · Grx · λ2
                  Prx = S · Aeq =              ·         =                      .                   (2.1)
                                       4πr2        4π            (4πr)2

Poich´ il termine:
     e
                                                             2
                                                     4πr
                                            Asl =
                                                      λ
    3
      Tale fattore dipende dalla dimensione e dalla forma dell’antenna, rappresenta l’area effettiva su cui
il segnale incide in ricezione.
Capitolo 2. Localizzazione basata su dispositivi wireless                                30


si chiama attenuazione dello spazio libero, l’equazione 2.1 si trasforma in:

                                          Ptx · Gtx · Grx
                                  Prx =                   ,                            (2.2)
                                                Asl

detta anche equazione di Friis. Solitamente le grandezze in sono espresse in decibel, per
cui la 2.2 diventa:

                Prx [ dBm] = Ptx [ dBm] + Gtx [ dB] + Grx [ dB] − Asl [ dB].

   L’equazione di Friis per l’attenuazione dello spazio libero mostra che la potenza in
ricezione decresce con il quadrato della distanza, ovvero di 20 dB/decade. Ovviamente
se le condizioni di visibilit` tra trasmettitore e ricevitore vengono a mancare, la potenza
                             a
del segnale ricevuto ` significativamente minore di quanto l’equazione per l’attenua-
                     e
zione dello spazio libero indica. Inoltre, non necessariamente essa fornisce una buona
approssimazione anche in condizioni di LoS [Rap01].


2.1.2    Assorbimento

In qualsiasi sistema di comunicazione, il segnale si propaga in un mezzo trasmissivo.
Nel caso di sistemi wireless terrestri il mezzo ` principalmente l’atmosfera e, in piccola
                                                e
misura, materiali come vetro, calcestruzzo, legno, ecc. In seguito alle interazioni con
essi, il segnale perde parte della sua energia per ogni unit` di distanza in cui si propaga.
                                                            a
Pertanto, l’assorbimento provoca una diminuzione di potenza proporzionale a γ −d , dove
d ` la distanza e γ ` una costante che dipende dalle propriet` del mezzo e dalla frequenza.
  e                 e                                        a
Ragionando in db, questo significa che la perdita di segnale ` lineare con la distanza.
                                                            e
   L’assorbimento ` particolarmente alto per frequenze oltre i 10 GHz; in questa situa-
                  e
zione, a causa dell’atmosfera, esso diventa comparabile all’attenuazione, specialmente
durante piogge e con distanze considerevoli. Con le frequenze usate nella maggior parte
dei sistemi di comunicazione wireless (al di sotto dei 10 GHz), l’assorbimento atmosferico
` quasi trascurabile per distanze entro i 10 km.
e


2.1.3    Rifrazione

Il fenomeno di rifrazione si verifica quando l’onda incontra un ostacolo con dimensioni
maggiori della lunghezza d’onda. La parte di essa che non ` riflessa perde parte della sua
                                                          e
energia in assorbimento e ci` che rimane riesce ad attraversare il materiale riflettente.
                            o
Nelle comunicazioni terrestri le onde sono riflesse dal terreno, producendo due percorsi
tra il trasmettitore e il ricevitore, come mostrato in figura 2.1; il piano di incidenza `
                                                                                        e
definito come il piano contenente il raggio incidente e quello riflesso, mentre l’angolo
di incidenza α ` l’angolo tra la superficie riflettente e il raggio incidente. Il segnale al
               e
ricevitore arriva quindi come due componenti, con differente fase, che nel caso peggiore
Capitolo 2. Localizzazione basata su dispositivi wireless                                31


                    Trasmettitore


                                                                Ricevitore


                                             α              β




                            Figura 2.1: Fenomeno di rifrazione


possono annullarsi. L’intensit` del segnale riflesso dipende dal coefficiente di riflessione
                              a
di Fresnel che a sua volta dipende dalle propriet` del materiale riflettente, dalla frequenza
                                                 a
e dall’angolo di incidenza α. L’asperit` della superficie causa la dispersione dell’onda
                                       a
in pi` direzioni e quindi il suo coefficiente di riflessione ` minore rispetto a un’altra
     u                                                    e
identica ma liscia; in generale esso ` differente per la componente orizzontale e verticale
                                     e
dell’onda. In tali casi, la riflessione pu` cambiare la polarizzazione.
                                         o


2.1.4    Scattering

Lo scattering (dispersione) consiste in una deviazione delle onde elettromagnetiche dalla
loro direzione di provenienza a causa delle continue riflessioni che esse subiscono incon-
trando molecole di gas, pulviscolo, gocce d’acqua ed altri elementi. Tale fenomeno si
verifica quando l’ostacolo ha dimensioni pari o inferiori alla lunghezza d’onda del segna-
le. L’energia radiante viene diffusa in tutte le direzioni, in modo pi` o meno accentuato,
                                                                     u
facendole perdere la sua caratteristica di unidirezionalit`. Gli effetti quantitativi dello
                                                          a
scattering dipendono moltissimo dal rapporto fra la lunghezza d’onda delle radiazioni e
le dimensioni fisiche delle particelle con cui interagiscono.


2.1.5    Diffrazione

In base al principio di Huygens, tutti i punti di fronte d’onda sono sorgenti di onde
secondarie che si propagano in tutte le direzioni. Inoltre, ogni volta che un’onda radio
colpisce uno spigolo come un angolo di un edificio, l’onda si incurva e continua a propa-
garsi nell’area oscurata da esso. Tale effetto viene chiamato diffrazione. In figura 2.2 il
trasmettitore ` situato vicino a un ostacolo; le frecce descrivono la direzione di propa-
              e
gazione quando il segnale si trova vicino allo spigolo, dovuta alle sorgenti secondarie del
fronte d’onda che si creano nei pressi dell’ostacolo.
   Pi` l’onda deve curvare intorno allo spigolo, pi` essa perde energia. Quindi l’area
     u                                             u
in cui il segnale curva maggiormente guadagnano relativamente meno potenza rispetto
Capitolo 2. Localizzazione basata su dispositivi wireless                                  32


all’area in cui il segnale procede quasi linearmente. La potenza del campo generato dalle
onde secondarie ` inferiore rispetto a quello delle onde primarie; in pratica quest’ultime
                e
possono essere trascurate se esiste una condizione di LoS tra il trasmettitore e il ricevito-
re. Il fenomeno della diffrazione viene sfruttato, ad esempio, per realizzare comunicazioni
radio oltre le montagne, quando un path LoS non ` disponibile; ovviamente la potenza
                                                e
di trasmissione dovr` essere molto maggiore rispetto ad una trasmissione LoS.
                    a




                            Figura 2.2: Fenomeno di diffrazione



2.1.6      Multipath

La conseguenza diretta di tutti i fenomeni citati precedentemente ` il multipath. Tale
                                                                  e
effetto si verifica in conseguenza agli effetti di riflessione, diffrazione e scattering delle
onde nell’ambiente, che giungono al ricevitore come somma delle copie delle onde stesse.
Questo fatto pu` essere determinato, per esempio, nel caso delle trasmissioni tra cellulari,
               o
dal fatto che il trasmettitore o il ricevitore si spostano continuamente costringendo le
onde elettromagnetiche ad effettuare percorsi continuamente variabili con attenuazioni
quindi diverse.
   Il risultato pi` rilevante del multipath ` il fading, ovvero il fatto che molteplici copie
                  u                         e
del segnale arrivano sovrapposte al ricevitore, con differente fase, ritardo e attenuazione,
rendendo possibile la somma distruttiva delle stesse e causando interferenza intersimbolo.
   Il segnale ricevuto ` spesso modellato con l’effetto combinato di slow e fast fading.
                       e
La componente di slow fading descrive l’attenuazione e l’assorbimento del segnale prima
dell’arrivo al ricevitore; solitamente ha una distribuzione lognormale. Il fast fading
modella invece gli effetti dovuti al multipath. Se esiste almeno un percorso dominante
in condizioni di LOS, quest’ultimo viene rappresentato con una distribuzione di Rician,
altrimenti viene utilizzata la distribuzione di Rayleigh quando tale condizione non si
verifica.
   Il fading inoltre, pu` essere selective o flat, in base al fatto che tale fenomeno interessi
                        o
particolari frequenze oppure si verifichi uniformemente su tutto lo spettro. Maggiori
dettagli sul fading possono essere trovati in [Rap01, Sey00].
Capitolo 2. Localizzazione basata su dispositivi wireless                                33


2.2     Modelli di propagazione
La predizione della propagazione delle onde radio ` molto utile in attivit` come link bud-
                                                  e                       a
geting, cell planning e appunto la localizzazione. I modelli di propagazione sono utilizzati
per prevedere le propriet` delle onde che si propagano, la qualit` del segnale ricevuto
                         a                                          a
                   a `
e la sua variabilit`. E possibile inoltre predire polarizzazione, dispersione temporale e
selettivit` in frequenza.
          a
   Gli aspetti teorici menzionati nei paragrafi precedenti possono essere tenuti da conto
in vari livelli di astrazione, in base alla quantit` di informazioni disponibili sull’am-
                                                   a
biente e all’accuratezza richiesta dal modello. Per esempio, durante la pianificazione
di una comunicazione satellitare o in generale di collegamenti estesi su decine di chilo-
metri, una buona precisione ` spesso ottenuta considerando l’attenuazione (path-loss),
                            e
l’assorbimento e la riflessione della terra. Diversamente, in aree urbane, riflessione e dif-
frazione causati dagli edifici e lo scattering provocato ad esempio da alberi, hanno una
forte influenza sulla propagazione del segnale. In base alle informazioni sull’ambiente
che abbiamo a disposizione possiamo tra tre tipi di modelli:

Empirici Si basano principalmente su statistiche derivanti da misurazioni e su pochi
      parametri. Sono abbastanza semplici e non molto accurati. In generale ` possibile
                                                                            e
      applicarli anche in ambienti differenti.

Deterministici Sono realizzati ad-hoc per un particolare ambiente e richiedono un’e-
      norme quantit` di dati geometrici su di esso. Spesso sono computazionalmente
                   a
      molto costosi anche se abbastanza accurati.

Semi-deterministici Basati su modelli empirici, considerando anche aspetti determi-
      nistici.

   In ambienti urbani, uno dei modelli pi` utilizzati, ` quello di Okumura-Hata [Sau00].
                                         u             e
Esso include un insieme di curve che indicano il path-loss, prendendo in considerazione
l’attenuazione e un fattore di correzione. Quest’ultimo ` ricavato da una funzione della
                                                        e
distanza e della frequenza del segnale. Tale modello ` applicabile quando le frequenze di
                                                     e
trasmissione sono comprese tra i 150 e i 1500 MHz, con distanze tra 1 e 10 chilometri.
   In ambienti indoor le distanze che separano il trasmettitore e il ricevitore sono molto
minori (nell’ordine dei 100 metri) ma i fenomeni fisici visti precedentemente si verificano
con molta pi` variabilit`. Il tipo di edificio, i suoi materiali da costruzione, le posizioni
            u           a
delle antenne, possono influenzare in modo rilevante il path-loss. In tali ambienti risul-
tano interessanti l’ITU Model for Indoor Attenuation e il Log-Normal Shadowing Model
che approfondiremo nelle sezioni seguenti.
   Essi si basano sul principio generico, descritto dall’equazione di Friis (equazione 2.2),
per cui la potenza del segnale in ricezione decresce proporzionalmente a d−np , sia in
Capitolo 2. Localizzazione basata su dispositivi wireless                                   34

                  Frequenza        Abitazione        Ufficio       Area commerciale
                   900 MHz              -             33                20
                   1.2 GHz              -             32                22
                   1.3 GHz              -             32                22
                   1.8 GHz             28             30                22
                    4 GHz               -             28                22
                   5.2 GHz              -             31                 -

                        Tabella 2.1: Valori del parametro N nell’ITU Model

 Frequenza          Numero di piani           Abitazione         Ufficio       Area commerciale
  900 MHz                 1                        -                9               -
  900 MHz                 2                        -               19               -
  900 MHz                 3                        -               24               -
  1.8 GHz                 n                       4n            15+4(n-1)        6+3(n-1)
  2.0 GHz                 n                       4n            15+4(n-1)        6+3(n-1)
  5.2 GHz                 1                        -               16               -

                      Tabella 2.2: Valori del parametro Pf (n) nell’ITU Model


ambienti indoor che outdoor, dove d ` la distanza tra trasmettitore e ricevitore, mentre
                                    e
np ` detto esponente di path-loss ed assume valori tipicamente tra 2 e 44 . Il path-loss
   e
alla distanza d (P L(d)[ dB]) ` modellato come:
                              e

                                                                  d
                                      P L(d) = P0 − 10np log         ,                    (2.3)
                                                                  d0

dove P0 [ dB] ` la potenza ricevuta alla distanza di riferimento d0 [ m].
              e


ITU Model for Indoor Attenuation

L’ITU Indoor Propagation Model [IR01], ` un modello di propagazione del segnale che
                                       e
stima il path-loss dentro un edificio delimitato da muri di qualsiasi forma e materiale.
Esso prende in considerazione anche l’attenuazione fra diversi piani dell’edificio (fino a
3) ed ` adatto per segnali a frequenze comprese tra i 900 MHz e i 5.2 GHz. L’equazione
      e
caratteristica del modello ` la seguente:
                           e

                                L = 20 log f + N log d + Pf (n) − 28,

dove L ` l’attenuazione totale [dB], f ` la frequenza di trasmissione [MHz], N ` il
       e                               e                                       e
coefficiente di perdita di potenza con la distanza, d ` la distanza [m], n ` il numero
                                                    e                    e
di piani che separano trasmettitore e ricevitore e Pf (n) ` il fattore di penetrazione del
                                                          e
piano. N e Pf (n) sono ricavati empiricamente; alcuni valori sono elencati nelle tabelle
2.1 e 2.2.
  4
      np = 2 nello spazio libero e maggiore di 2 in presenza di ostruzioni
Capitolo 2. Localizzazione basata su dispositivi wireless                                 35

                       Ambiente              Frequenza      10γ       σ
                         Negozio              914 MHz        22      8.7
                        Alimentari            914 MHz        18      5.2
                   Ufficio con muri spessi      1.5 GHz        30       7
                     Ufficio con muri           900 MHz        24      9.6
                     Ufficio con muri           1.9 GHz        26     14.1
                     Tessile o chimico        1.3 GHz        20      3.0
                     Tessile o chimico         4 GHz         21    7.0-9.7
                        Metallico             1.3 GHz        16      5.8
                        Metallico             1.3 GHz        33      6.8

                 Tabella 2.3: Coefficienti del Log-Distance Path-Loss Model


Log-Normal Shadowing Model

Il Log-Normal Shadowing Model ` un modello di propagazione del segnale radio che
                              e
predice l’attenuazione che il segnale incontra all’interno di un edificio, correlata alla
distanza. Esso ` descritto in dettaglio in [Rap01]. L’equazione da cui si ricava il path-loss
               e
` la seguente:
e
                                                    d
                               L = L0 + 10γlog 10      + Xg ,
                                                    d0
in cui L ` il path-loss totale all’interno dell’edificio [dB], L0 ` il path-loss alla distanza
         e                                                       e
d0 [dB], d ` la distanza che separa trasmettitore e ricevitore [m], d0 ` la distanza di
           e                                                           e
riferimento [m], γ ` l’esponente di path-loss e Xg ` una variabile casuale gaussiana a
                   e                               e
media nulla e varianza σ 2 , relativa ai fenomeni di fading (shadow fading). Anche questi
questi coefficienti sono ricavati empiricamente; alcuni loro valori sono elencati in tabella
2.3.


2.3     Il processo di localizzazione
La localizzazione ` un processo mediante il quale i nodi determinano la loro posizione.
                  e
In termini semplici, la localizzazione ` un meccanismo per scoprire le relazioni spaziali
                                       e
tra oggetti. I differenti approcci scelti in letteratura differiscono dal punto di vista delle
assunzioni fatte sulle capacit` della rete e dei nodi utilizzati. Una lista dettagliata di
                              a
assunzioni possibili, seppur non esaustiva, comprende assunzioni sul tipo di hardware
disponibile, modelli di propagazione del segnale, requisiti energetici e di temporizzazione,
tipo di ambiente (indoor o outdoor), densit` di nodi beacon, precisione necessaria e
                                           a
mobilit` dei nodi. In particolare, in condizioni di mobilit`, possono presentarsi quattro
       a                                                   a
differenti scenari, in base al fatto che i nodi o i beacon hanno la possibilit` di spostarsi.
                                                                             a
   Nel seguito verranno presentati alcuni tra pi` rilevanti approcci al problema della
                                                u
localizzazione, raggruppandoli in due principali categorie: i metodi di localizzazione
range-based e range-free.
Capitolo 2. Localizzazione basata su dispositivi wireless                                  36


2.4        Metodi di localizzazione range-based
Nei metodi di localizzazione range-based, la posizione di un nodo ` calcolata relativa-
                                                                  e
mente ai nodi nelle vicinanze5 . Essi fanno l’assunzione che la distanza tra il trasmettitore
e il ricevitore pu` essere stimata considerando una o pi` caratteristiche del segnale. La
                  o                                     u
precisione di tale stima, comunque, dipende dalle condizioni del canale di trasmissione
e dall’ambiente circostante. Spesso, a causa dei fenomeni fisici visti precedentemente,
essa pu` essere inaccurata e necessita di ulteriori elaborazioni.
       o
      Le caratteristiche del segnale usate frequentemente in approcci range-based saranno
descritte nei paragrafi seguenti.


2.4.1       Time Of Arrival

Il Time Of Arrival (TOA) ` comunemente usato per ottenere informazioni sulla distanza
                         e
attraverso il tempo di propagazione del segnale. Mediante la relazione esistente tra la
velocit` della luce nel vuoto e la frequenza del segnale ` possibile ricavare la distanza
       a                                                 e
tra trasmettitore e ricevitore. Il sistema pi` conosciuto che utilizza il TOA ` senz’altro
                                             u                                e
GPS; esso richiede un hardware dedicato, per mantenere una precisa sincronizzazione
con i clock dei satelliti.
      A differenza del TOA, il Time Difference Of Arrival (TDOA), non impiega i tempi
assoluti di invio e ricezione del segnale, ma le differenze temporali relative fra i nodi.
Combinando almeno tre distanze ricavate da tre posizioni di riferimento, ` possibile
                                                                         e
stimare la posizione del dispositivo effettuando un procedimento di trilaterazione, impo-
stando un sistema di equazioni che permette di trovare l’intersezione tra le circonferenze
centrate sui nodi di riferimento (fig. 2.3). Nel caso di tre nodi di riferimento avremo il
seguente sistema:                  
                                    (x1 − x)2 + (y1 − y)2 = d2
                                                             1
                                   
                                     (x − x)2 + (y2 − y)2 = d2 ,
                                    2                       2
                                    (x − x)2 + (y − y)2 = d2
                                   
                                       3          3          3

dove (xi , yi ) sono le coordinate del nodo di riferimento i e di le singole distanze stimate.
Ovviamente all’aumentare dei nodi di riferimento ` possibile impostare un problema di
                                                 e
ottimizzazione (ad esempio minimi quadrati) incrementando notevolmente l’accuratezza
della stima (in questo caso si parla di multilaterazione).


2.4.2       Angle Of Arrival

L’Angle Of Arrival (AOA) ` definito come l’angolo formato dalla direzione di propa-
                         e
gazione dell’onda incidente rispetto ad una direzione di riferimento, che ` nota come
                                                                          e
orientamento. In particolare viene misurata la direzione del segnale che arriva dal nodo
  5
      Sono i nodi presenti nel raggio di copertura del segnale del dispositivo
Capitolo 2. Localizzazione basata su dispositivi wireless                                37




                                                           (x2,y2)
                                    (x1,y1)
                                              d1         d 2
                                                        (x,y)


                                                      d3


                                                   (x3,y3)




                       Figura 2.3: Il procedimento di trilaterazione


mobile ad altri due nodi. Se la posizione dei quest’ultimi ` nota, ` possibile utilizzare la
                                                           e       e
triangolazione per determinare la posizione dell’unit` mobile. Se sono disponibili pi` di
                                                     a                               u
tre misurazioni di angoli, esse non necessariamente sono compatibili a causa di possibili
errori e perci` devono essere applicate delle medie complicate per ottenere la posizione
              o
[NN03].
   Un approccio comune per misurare l’AOA ` utilizzare un array di antenne e ci` lo
                                          e                                    o
rende quasi inapplicabile nelle WSN, a causa del suo costo e della sua complessit`.
                                                                                 a


2.4.3     Received Signal Strenght

Una possibilit` per acquisire informazioni sulla distanza ` correlarla alla potenza del
              a                                           e
segnale ricevuto, denominata Received Signal Strenght (RSS). L’idea fondamentale die-
tro questo approccio ` che la potenza di trasmissione Ptx influisce direttamente sulla
                     e
potenza di ricezione Prx . Secondo l’equazione 2.1, Prx varia in modo quadratico con la
distanza dal trasmettitore r.
   Ovviamente questo ragionamento ` corretto nelle condizioni ideali di LoS tra tra-
                                  e
smettitore e ricevitore, nel vuoto e in assenza di fenomeni come rifrazione, diffrazione e
multipath. In scenari reali, e in particolar modo in ambienti indoor, l’andamento rea-
le dell’equazione 2.1 non ` applicabile direttamente, in quanto il RSS ` influenzato da
                          e                                            e
molteplici fattori:

Variabilit` del trasmettitore Differenti tipi di trasmettitori si comportano differen-
          a
      temente, anche se configurati nello stesso modo. In pratica, questo significa che
      quando un trasmettitore ` configurato per inviare dati ad un livello di potenza di
                              e
      p dBm, il valore reale non sar` esattamente uguale a quanto impostato. Questo
                                    a
      pu` alterare il RSS in ricezione e portare pertanto a stime inaccurate.
        o
Capitolo 2. Localizzazione basata su dispositivi wireless                                38


Variabilit` del ricevitore La sensibilit` del ricevitore, su diversi circuiti radio ` dif-
          a                             a                                           e
     ferente. In pratica, questo significa che il RSS misurato su pi` tipi di ricevitori
                                                                   u
     pu` non coincidere, anche se tutti gli altri parametri che lo influenzano rimangono
       o
     costanti.

Orientamento dell’antenna Ogni tipo di antenna ha il proprio pattern di radiazione
     e anche se essa idealmente ` isotropa, nella realt` il suo guadagno non sar` uni-
                                e                      a                        a
     forme. Ci` significa che alla medesima distanza, modificando l’orientamento del
              o
     dispositivo di trasmissione o ricezione, la misurazione del RSS sar` differente.
                                                                        a

Multipath fading Come descritto al paragrafo 2.1.6, in ambienti indoor, il segnale tra-
     smesso viene riflesso dopo aver colpito muri o altri oggetti. Sia il segnale originale
     che quello riflesso raggiungono il ricevitore quasi allo stesso istante, considerata la
     velocit` di propagazione pari a quella della luce. Come risultato di questo, il RSS
            a
     viene calcolato per entrambi i segnali dato che essi non sono distinguibili.

Interferenze La presenza di altri campi elettromagnetici generati da altre fonti pu`
                                                                                   o
     ampliare o attenuare il segnale e di conseguenza influire sul RSS.

   In molte applicazioni, tali effetti, possono degradare la bont` della misurazione fa-
                                                                a
cendo ottenere un’alta varianza ed una bassa entropia sui dati rilevati. Spesso quindi,
correlare la potenza del segnale ricevuto alla distanza e, successivamente, alla posizione,
richiede la progettazione di sistemi che tengano conto della rumorosit` del RSS.
                                                                      a
   Il fattore positivo negli algoritmi che utilizzano il RSS ` il basso costo e complessit`;
                                                             e                            a
come vedremo al capitolo 3, nello standard IEEE 802.15.4 sono previste delle primitive
del livello fisico che permettono di estrarre il valore del RSS su ogni pacchetto ricevuto.
In questo modo ` possibile implementare algoritmi di localizzazione su qualsiasi tipo di
               e
nodo compliant con lo standard, senza la necessit` di hardware costosi.
                                                 a
   In letteratura, esistono molti approcci basati sulle considerazioni fatte, tra cui prin-
cipalmente [SHS01, PHP+ 03, BGGT07, SKOM06].


2.4.3.1   RSS fingerprinting

Alcuni metodi di localizzazione non impiegano il RSS per ricavarne informazioni relative
distanza; l’idea ` quella di identificare una locazione sulla base della sua impronta RSS
                 e
(RSS fingerprint) rispetto a diversi nodi beacon, sotto l’assunzione che essa ` univoca
                                                                             e
per tutte le posizioni dell’ambiente in esame. Generalmente, un’impronta I ` associata
                                                                           e
alle informazioni sulla posizione P , costruendo una tupla < I, P > che viene inserita in
un database durante una prima fase off-line, denominata RSS profiling. La dimensione
delle coordinate reali nella tupla pu` variare da 1 a 5, considerando uno spazio tridimen-
                                     o
sionale e due variabili di orientamento. Ad esempio, le informazioni sulla posizione di
Capitolo 2. Localizzazione basata su dispositivi wireless                                39


un sistema bidimensionale con orientamento, possono essere rappresentate dalla tripletta
P = {(x, y, o)|x, y ∈ R2 , d ∈ {Nord,Est,Sud,Ovest}}.
   Nonostante il RSS risulti molto pi` dipendente dalla posizione, rispetto al SNR, es-
                                     u
so pu` variare nel tempo rispetto al medesimo beacon e deve essere considerato come
     o
una variabile casuale; possono essere utilizzate statistiche descrittive, approssimando
la distribuzione delle misurazioni, oppure mantenendo tutti i dati. Indipendentemente
dall’approccio scelto, l’impronta RSS di una determinata posizione conterr` un vettore
                                                                          a
I = {RSS1 , RSS2 , ..., RSSn }, dove n dipende dal numero di beacon considerati. Ovvia-
mente, il numero di campioni raccolti per rappresentare correttamente la locazione deve
essere adeguato all’ambiente, al fine di eliminare eventuali mismatch nell’algoritmo che
effettuer` la corrispondenza. In figura 2.4 ` possibile osservare un ambiente in cui sono
        a                                 e
state effettuate misurazioni di impronte RSS (RADAR [BP00]).


                             Wireless Access Point

                             RSS ngerprint




                  Figura 2.4: Impronte RSS nel sistema RADAR [BP00]


   Dopo la fase di profiling, il problema di localizzazione entra nella fase on-line, in cui
l’impronta RSS del nodo viene campionata a intervalli regolari e se ne cerca l’eventuale
corrispondenza nel database costruito. Esistono vari algoritmi per trovare tali corrispon-
denze, alcuni deterministici basati su reti neurali o classificatori nearest neighbour, altri
probabilistici che impiegano l’inferenza bayesiana. Ad esempio la soluzione descritta
in [BP00] utilizza la metrica definita nearest neighbour in signal space (NNSS) che usa
essenzialmente la distanza euclidea.
   Come si pu` comprendere, questa classe algoritmi richiede molto tempo per la fase
             o
di profiling e una modifica nella configurazione dei beacon comporta la ripetizione di
Capitolo 2. Localizzazione basata su dispositivi wireless                                40


tutte le misurazioni. Risultano tuttavia molto robusti rispetto ai fenomeni che di soli-
to influenzano il RSS, soprattutto indoor. Essi sono utilizzati con successo in scenari
abbastanza statici, come la localizzazione in uffici. Un altro sistema basato su quanto
appena descritto ` Motetrack [LW04].
                 e


2.5     Metodi di localizzazione range-free
L’approccio alla localizzazione range-free non si occupa di calcolare le distanze basandosi
sulla potenza del segnale ricevuto o altre caratteristiche del segnale come tempo, angolo,
ecc. Piuttosto, la posizione dei nodi viene calcolata sfruttando delle propriet` topologiche
                                                                               a
della rete, ad esempio tenendo presente il numero di hop tra trasmettitore e ricevitore
oppure considerando informazioni sulla connettivit` con i nodi vicini [SRZF07].
                                                  a
   Un semplice algoritmo range-free ` quello basato sul centroide [BHE00]; il nodo che
                                    e
vuole conoscere la sua posizione calcola il centroide delle posizioni inviate dai beacon
che lo circondano. Esso genera un errore sulla localizzazione che ovviamente dipende
dalla configurazione dei beacon e dalla posizione del nodo.
   Un approccio interessante ` APIT (Approximate Point In Triangulation), descritto
                             e
in [HHB+ 03]. Esso richiede che una piccola percentuale di dispositivi conosca la sua
posizione e sia equipaggiato con un trasmettitore ad alta potenza. Ogni nodo stima se
si trova all’interno di una regione triangolare tra i beacon (fig. 2.5(a)); la presenza di un
nodo dentro o fuori queste aree permette di restringere l’area in cui esso potenzialmente
risiede. Utilizzando di volta in volta combinazioni di tre beacon, la precisione sulla
localizzazione aumenta ad ogni iterazione.




                  (a) APIT [HHB+ 03]                             (b) DV-HOP [NN01]



                  Figura 2.5: Alcuni approcci di localizzazione range-free


   Un altro algoritmo di localizzazione range-free ` DV-HOP [NN01] che impiega un
                                                   e
numero costante di beacon ed ` basato su un’euristica che mette in relazione la distanza
                             e
con il numero di hop in reti isotrope 2.5(b). Sostanzialmente ogni nodo calcola il numero
Capitolo 2. Localizzazione basata su dispositivi wireless                                 41


di hop che lo separano dal beacon e lo trasforma in una distanza. L’algoritmo ` struttu-
                                                                              e
rato in due fasi: nella prima fase, ogni nodo ascolta i messaggi propagati in flooding dai
beacon e registra il minor numero di hop che lo separano da esso. Nella seconda fase,
in base alla stima effettuata, il nodo propaga un fattore di correzione che rappresenta
la distanza reale di un hop da lui percepita. Tale approccio comporta tuttavia un alto
errore di localizzazione in reti anisotrope, dove l’esistenza di un “buco” nella struttura fa
venire meno la proporzionalit` fra numero di hop e distanza, causando stime inaccurate.
                             a
   Data le limitazioni sulla complessit` dell’hardware di un dispositivo appartenente a
                                       a
WSN, le soluzioni range-free risultano una buona alternativa rispetto a quelle range-
based, anche se talvolta hanno dei requisiti abbastanza stringenti sulla topologia di rete
(richiedono ad esempio reti isotrope) e sulla densit` di dispositivi che ne fanno parte.
                                                    a
Capitolo 3

Lo standard ZigBee

Ad oggi, la realizzazione di Personal Area Network (PAN) basate su protocolli wireless,
sta riscontrando notevole interesse, sia in ambito accademico che industriale. Nono-
stante vi siano molteplici standard e protocolli gi` consolidati ed idonei a questo scopo
                                                   a
come Wi-Fi e Bluetooth, esistono tuttavia alcuni scenari applicativi in cui sono richieste
funzionalit` aggiuntive al trasferimento dati. Si pensi ad esempio al monitoraggio di
           a
componenti meccaniche in movimento in un’industria, al fine di misurare alcune gran-
dezze fisiche di interesse, come ad esempio accelerazioni e temperature. Una prima
idea potrebbe essere quella di impiegare dei sensori, integrati in nodi basati su Wi-Fi,
collocati sulle parti da monitorare; sorgono immediatamente alcuni dubbi, sia su come
alimentare i nodi a lungo termine (dato il consumo energetico non indifferente di tali
dispositivi non ` praticabile l’impiego di batterie, almeno di ridotte dimensioni), sia in
                e
che modo organizzare la rete dal punto di vista gerarchico, per l’aggregazione dei dati.
Tali problematiche sono tra quelle principali per cui sono state introdotte le Wireless
Sensor Network (WSN) [SACO06] e a cui appunto ZigBee1 appartiene.
      In questo capitolo verr` illustrata a grandi linee la struttura dello standard, focaliz-
                             a
zando l’attenzione sulle funzionalit` dello stack che sono risultate di interesse per nella
                                    a
valutazione e la successiva implementazione delle applicazioni. Tale studio ha permesso
di avere le prime indicazioni da cui partire per risolvere un problema di localizzazione,
ottenute analizzando le informazioni riportate dalle primitive relative alla qualit` del se-
                                                                                   a
gnale (Link Quality Indicator ). Sono inoltre riportate le motivazioni che hanno portato
alla selezione di dispositivi ZigBee per la realizzazione di questo lavoro di tesi.
  1
      ZigBee ` un marchio registrato dalla ZigBee Alliance
             e




                                                   42
Capitolo 3. Lo standard ZigBee                                                            43


3.1       Le motivazioni della scelta
L’integrazione di tecnologie per WSN e sistemi di robotica mobile, al fine di realizzare
un’applicazione per la localizzazione, pone dei requisiti abbastanza chiari alla piatta-
forma hardware e software. L’avere a che fare con un sistema che lavora in mobilit`,
                                                                                  a
introduce nuove problematiche, soprattutto per quanto riguarda l’organizzazione e ge-
stione della rete. Inoltre, fattori come basso costo e autonomia in termini energetici,
sono fondamentali al fine di rendere l’applicazione facilmente realizzabile anche nella
pratica. Come ultimo, e non per questo meno importante aspetto, occorre menzionare
le possibilit` di miniaturizzazione dei dispositivi, in modo da poterli facilmente installare
             a
su varie tipologie di robot mobili, anche di piccole dimensioni. Per di pi`, essi potreb-
                                                                          u
bero essere indossati anche da persone o rilasciati dinamicamente nell’ambiente durante
il processo di esplorazione, in modo da garantirne la successiva localizzazione.
      Dopo un’attenta analisi, la scelta ` stata indirizzata verso lo standard per LR-WPAN
                                         e
ZigBee, dato che, come vedremo successivamente nel resto del capitolo, presenta molti
dei requisiti descritti in precedenza. La selezione ` stata effettuata dopo due settimane di
                                                    e
sperimentazione presso l’RFID-Lab2 , un laboratorio che si occupa principalmente di test
e integrazione di tecnologie wireless, in particolare Wi-Fi, Bluetooth, RFID, e appunto
ZigBee. Effettivamente questo periodo ` stato di fondamentale importanza anche per
                                     e
considerare altre alternative (ad esempio TinyOS) e al fine di valutare anche a livello
applicativo la soluzione che si stava scegliendo.
      Le piattaforma selezionata dopo questa fase di studio ` stata quella prodotta da
                                                            e
Freescale, per la precisione quella basata sul SiP MC13213 e ZigBee compliant rispetto
alla specifica ZigBee 2006. Per ulteriori dettagli sulla piattaforma impiegata si consulti
il paragrafo 4.1 e per le caratteristiche tecniche l’appendice A.


3.2       La nascita dello standard
I primi studi, che hanno portato alla successiva definizione dello standard, risalgono al
1998 ad opera di Motorola, quando alcuni gruppi di ingegneri si resero conto che effetti-
vamente molti nuovi scenari applicativi non potevano essere risolti efficacemente con le
tecnologie wireless esistenti. La versione 1.0 delle specifiche (ZigBee 2004) viene pubbli-
cata nel dicembre 2004, anche a seguito del lavoro svolto da IEEE per creare uno stan-
dard per il livello fisico e di accesso al mezzo (MAC) per le LR-WPAN, ovvero 802.15.4
[IEE06]. Contemporaneamente, nel 2002, nasceva la ZigBee Alliance, un’associazione di
oltre 200 aziende a cui partecipano alcuni dei maggiori produttori di semiconduttori a
livello mondiale, tra cui Freescale, Texas Instruments, Philips, Honeywell e Oki. Essa si
  2
      http://w3.uniroma1.it/rfidlab/default.asp
Capitolo 3. Lo standard ZigBee                                                          44


occupa di gestire l’evoluzione dello standard e di garantire l’interoperabilit` e conformi-
                                                                              a
t` alle specifiche delle applicazioni sviluppate. La versione attualmente in uso ` ZigBee
 a                                                                              e
2006 (settembre 2006) [Zig06] e dall’ultimo trimestre del 2007 sta per essere finalizzata
la nuova versione ZigBee Pro, che comprende alcune migliorie per quanto riguarda la
scalabilit` e la sicurezza in reti di grande complessit`.
          a                                            a


3.3       Caratteristiche
Le migliori peculiarit` di ZigBee, se vogliamo, sono racchiuse proprio nel suo nome. La
                      a
parola ZigBee infatti, deriva dallo zigzagare delle api durante il volo; ci` rappresenta
                                                                           o
proprio la semplicit` con cui ` possibile organizzare la struttura della rete e la comuni-
                    a         e
cazione (in particolare l’instradamento), anche in caso di guasti. Quello che aggiunge
altro entusiasmo intorno alla nascita di questo protocollo ` inoltre la sua straordinaria
                                                           e
stabilit` ed affidabilit`, a fronte di consumi energetici irrisori; si pensi che con un’ali-
        a             a
mentazione di 3 V3 , ` possibile mantenere operativo un nodo anche per pi` di un anno.
                     e                                                   u
Tutte queste caratteristiche portano ZigBee ad essere molto indicato in applicazioni di
controllo e monitoraggio, in cui ad esempio ` significativo avere bassa latenza nelle comu-
                                            e
nicazioni, sia per lo scambio di messaggi che per il collegamento alla rete. Al contrario
esso non ` stato progettato per lo scambio dati ad alti data rate; il suo massimo bitrate
         e
ottenibile ` di appena 250 Kbps. In figura 3.1 sono stati messi a confronto il bitrate e il
           e
range trasmissivo raggiungibili da ZigBee, rispetto ad altri protocolli wireless.
      Considerando che la maggior parte dei dispositivi ZigBee compliant permette il col-
legamento di trasduttori e sensori di varie tipologie, possiamo immaginare dei possibili
scenari in cui ZigBee pu` essere impiegato convenientemente:
                        o

Home automation Sicurezza, controllo illuminazione, HVAC, controllo accessi.

Controllo industriale Monitoraggio dei processi, gestione energia e risorse.

Agricoltura di precisione Irrigazione controllata, dosaggio fertilizzanti.

Health care Sensori e apparecchiature medicali, controllo pazienti, telemedicina.

Elettronica di consumo Periferiche, controllo a distanza elettrodomestici, giocattoli.

      Gli altri punti di forza di questa tecnologia risultano essere la bassa complessit` e
                                                                                        a
di conseguenza il costo di produzione. La dimensione dello stack ` molto ridotta (nel-
                                                                 e
l’ordine dei 50 KB) rispetto a Bluetooth o Wi-Fi e richiede perci` hardware abbastanza
                                                                 o
economico; una piattaforma hardware tipica ` formata da processore a 16 MHz con 4
                                           e
  3
      Tensione corrispondente a due comuni batterie AA.
Capitolo 3. Lo standard ZigBee                                                                                                45


                             Text                   Internet/Audio               Compressed Video       Digital Video
               150 m
                                                               802.11b

   Range (m)
                                                                                      802.11a, g
               100 m       802.15.4/ZigBee
                                                             Bluetooth 2


                                                                                                         802.15.3/UWB
               10 m                            Bluetooth 1

                100 Kbps              1 Mbps                               10 Mbps                 50 Mbps         100 Mbps
                                                                  Data Rate



         Figura 3.1: Bitrate e range trasmissivi di ZigBee rispetto ad altri standard wireless


KB di RAM e 128 KB di memoria flash, modem e porte di I/O. Spesso tali componen-
ti vengono integrati in singoli circuiti, i cosiddetti System-In-Package (SiP), riducendo
anche le dimensioni, oltre al costo e ai consumi energetici.
    Molte delle caratteristiche precedentemente descritte risultano di fondamentale im-
portanza nelle WSN, in cui sono richieste le seguenti funzionalit`:
                                                                 a

    • Topologie di rete dinamiche

    • Instradamento multi-hop

    • Funzionamento con elevato numero di nodi

    • Resistenza ai guasti

    • Auto-organizzazione e self-healing

    • Lunga autonomia energetica

    Per quanto riguarda le caratteristiche trasmissive di ZigBee, esso opera nelle frequen-
ze radio assegnate per scopi industriali, scientifici e medici (ISM); 868 MHz in Europa,
915 MHz negli Stati Uniti e 2,4 GHz nella maggior parte dei paesi. Per i dettagli riguardo
il livello fisico consultare il paragrafo 3.4.1.


3.4             Lo stack ZigBee
La specifica ZigBee [Zig06] definisce uno stack protocollare che permette l’interoperabili-
t` di dispositivi wireless a basso costo, a bassi consumi energetici e con data rate limitati.
 a
Esso pone le sue basi, per quanto riguarda il livello fisico (PHY) e il livello di accesso al
mezzo trasmissivo (MAC), sullo standard per le LR-WPAN IEEE 802.15.4 [IEE06]. In
questi primi due strati vengono specificati i parametri fisici di comunicazione e accesso
al canale, le primitive di trasmissione/ricezione, una gestione di base dell’autenticazione
e della sicurezza.
Capitolo 3. Lo standard ZigBee                                                                                                                          46

          Banda                    Regione geografica                Data rate                   Canali disponibili
        868.3 MHz                         Europa                     20 Kbps                            0
       902-928 MHz                 Stati Uniti, Australia            40 Kbps                           1-10
     2.405-2.480 GHz                    Tutti i paesi               250 Kbps                          11-26

                             Tabella 3.1: Suddivisione della banda ZigBee


   Diversamente, i livelli superiori definiti dalla ZigBee Alliance, prevedono un livello
di rete (NWK), un livello applicazione (APL) e un servizio di sicurezza, detto Security
Service Provider (SSP). Nei prossimi paragrafi affronteremo ciascuno di questi strati
singolarmente; in figura 3.2 ` possibile osservare in dettaglio lo stack ZigBee completo.
                            e

        IEEE 802.15.4
                                                                 Application (APL) Layer
        defined
                                                 Application Framework
        ZigBeeTM Alliance
        defined
                                                                                                  ZigBee Device Object
        End manufacturer




                                                                                  ZDO Public
                                                                                                        (ZDO)
        defined                            Application




                                                                                   Interfaces
                                                                  Application
                                            Object 240             Object 1
        Layer
        function
                                                          …
        Layer                              Endpoint 240             Endpoint 1                         Endpoint 0
        interface                          APSDE-SAP               APSDE-SAP                          APSDE-SAP




                                                                                                                                 ZDO Management Plane
                                                                                                                     APSME-SAP
                                                            Application Support Sublayer (APS)
                                            ASL Security
                                            APS                      APS Message                  Reflector
                                                                       Broker                    Management
                        Security
                                            Management
                        Service             NLDE-SAP
                        Provider                                     Network (NWK) Layer




                                                                                                                    NLME-SAP
                         (SSP)
                                            NWK Security      NWK Message          Routing           Network
                                            Management          Broker            Management        Management

                                            MLDE-SAP                                                  MLME-SAP
                                                          Medium Access Control (MAC) Layer


                                             PD-SAP                                                   PLME-SAP
                                                                  Physical (PHY) Layer
                                                          2.4 GHz Radio          868/915 MHz




                                    Figura 3.2: Lo stack ZigBee completo



3.4.1   Lo strato PHY

Come gi` accennato precedentemente, ZigBee opera nella banda di frequenze ISM, che
       a
non necessita di licenza se i dispositivi hanno massima potenza EIRP (potenza equiva-
lente irradiata da antenna isotropica) limitata (nell’ordine di qualche mW) e vengono
utilizzati all’interno di propriet` private; ne consegue ovviamente che in questa banda si
                                  a
verificano facilmente interferenze generate da altri apparati che operano sulle medesime
frequenze ISM. Per ovviare a tale problema, come vedremo, vengono impiegate tecniche
particolari di modulazione e di accesso al mezzo trasmissivo.
Capitolo 3. Lo standard ZigBee                                                           47


   Il gruppo di IEEE 802.15.4 ha previsto due differenti specifiche dello strato PHY,
operative in differenti range di frequenze; una specifica a bassa frequenza, che impiega
la banda a 868 MHz in Europa e a 915 MHz negli Stati Uniti e in Australia. La
seconda specifica ad alta frequenza utilizza invece la banda dei 2.4 GHz, disponibile nella
maggior parte dei paesi nel mondo. In tabella 3.1 ` possibile comprendere l’assegnazione
                                                  e
delle frequenze, il numero di canali disponibili e la massime velocit` di trasmissione
                                                                     a
raggiungibili.


3.4.1.1   Modulazione e spreading

La funzione dello strato PHY ` principalmente quella di trasmettere e ricevere dati
                             e
binari, provenienti e destinati, agli strati superiori. Per le due differenti specifiche (868-
915 MHz e 2.4 GHz) vengono utilizzate tecniche di modulazione e spreading differenti,
il cui principio di funzionamento ` illustrato in figura 3.3.
                                  e

                                        2.4 GHz PHY

                    Convertitore da    Convertitore da     Modulazione
                     bit a simbolo     simbolo a chip        O-QPSK
            DATI                                                          SEGNALE
           BINARI                                                        MODULATO
                       Encoder         Convertitore      Modulazione
                     di erenziale      da bit a chip        BPSK

                                      868-915 MHz PHY



                      Figura 3.3: Spreading e modulazione in 802.15.4



DSSS e modulazione O-QPSK (2.4 GHz)

In questo caso lo stream binario viene suddiviso in nibble, che vengono mappati in se-
quenze di 32 bit (dette chip) effettuando uno XOR con sequenze pseudocasuali, anch’esse
di 32 bit. Al termine di questa procedura (che prende il nome DSSS - Direct Sequence
Spread Spectrum) il segnale occupa pi` banda del necessario, permettendo di condivi-
                                     u
dere il singolo canale diversi utenti e di resistere maggiormente a fenomeni di jamming.
Il chip che arriva al modulatore O-QPSK (Offset Quadrature Phase Shift Keying) viene
diviso in due sequenze sfasate di mezzo periodo di chip che vengono modulate separa-
tamente (sequenza in fase [I] e in quadratura [Q]); ci` limita le oscillazioni di fase a 90◦
                                                      o
(rispetto ai 180◦ della normale QPSK) fornendo un inviluppo con meno salti in ampiezza
rispetto a QPSK.
Capitolo 3. Lo standard ZigBee                                                            48


DSSS e modulazione BPSK (868-915 MHz)

La sequenza binaria in ingresso all’encoder bit a bit, effettuando uno XOR con il risultato
dell’operazione precedente, secondo la seguente equazione:

                                      En = Rn ⊕ En−1

dove Rn ` il bit in ingresso allo stadio di encoder differenziale, En−1 ` il risultato dell’o-
        e                                                              e
perazione precedente ed En ` il risultato dell’operazione, riferito all’indice n. Successi-
                           e
vamente il singolo bit viene espanso con una procedura di spreading in una sequenza di
15 bit, utilizzando un chip a 15 bit (generato in modo pseudocasuale). La sequenza pro-
dotta viene poi inviata sul canale wireless utilizzando una modulazione BPSK (Binary
Phase Shift Keying) con un impulso a coseno rialzato e fattore di rolloff α = 1.


3.4.1.2     Coesistenza con interferenze

Per un dispositivo wireless, operare nelle bande ISM, pu` diventare problematico data
                                                        o
la numerosa presenza di altri apparecchi che utilizzano quelle frequenze. Per ZigBee le
potenziali interferenze si presentano a 2.4 GHz, frequenza a cui lavorano anche 802.11
b/g e Bluetooth. In questo interessante articolo [Cro07] ` riportato un esperimento in cui
                                                         e
viene misurato il PER (Packet Error Rate) su una rete ZigBee funzionante in presenza
di una Wi-Fi 802.11b attiva; dai risultati si apprende che ZigBee ` abbastanza tollerante
                                                                  e
alle interferenze, avendo uno spettro di ampiezza nettamente inferiore a Wi-Fi. Ad
ogni modo, durante le fasi di installazione di diverse tecnologie wireless operanti sulla
medesima banda, ` bene scegliere canali che siano ortogonali tra loro, come ` possibile
                e                                                           e
osservare in figura 3.4.




     2.40     2.41     2.42    2.43    2.44     2.45     2.46     2.47    2.48




                       Figura 3.4: Coesistenza di ZigBee con 802.11
Capitolo 3. Lo standard ZigBee                                                           49


   Nel paragrafo 3.4.2 vedremo come viene regolato l’accesso al mezzo da parte dei pi`
                                                                                     u
dispositivi che condividono lo stesso canale trasmissivo.


3.4.1.3   Primitive offerte dallo strato PHY

Lo strato PHY ha la responsabilit` di fornire le seguenti funzionalit` ai livelli superiori:
                                 a                                   a

    - Attivazione e disattivazione del transceiver

    - Rilevamento della quantit` di energia sul canale in uso (Energy Detection - ED)
                               a

    - Misurazione della qualit` del collegamento per tutti i pacchetti ricevuti (Link
                              a
      Quality Indicator - LQI)

    - Verifica dell’occupazione del canale (Clear channel assessment - CCA) per realizza-
      re servizi di CSMA-CA (Carrier Sense Multiple Access with Collision Avoidance)

    - Selezione della frequenza di trasmissione

    - Invio e ricezione di dati

Come si pu` notare in figura 3.2 la comunicazione tra uno strato dello stack e quelli ad
          o
esso adiacenti ` garantita mediante dei Service Access Point (SAP). Le primitive che
               e
vengono invocate tramite questi SAP possono essere di quattro tipi:

Request La primitiva di request ` inviata dallo user-N al layer-N per richiedere che un
                                e
      servizio sia invocato.

Indication La primitiva di indication viene passata dal layer-N allo user-N per indicare
      un evento interno al layer-N significativo per lo user-N. Questo evento pu` essere
                                                                               o
      logicamente legato a una request remota o ad un evento interno al layer-N.

Response La primitiva di response viene passata dallo user-N al layer-N per completare
      una procedura precedentemente invocata da una indication.

Confirm La primitiva di confirm viene passata dal layer-N allo user-N per comunicare
      l’esito di una o pi` richieste precedenti.
                         u

In particolare ogni strato dello stack ZigBee espone un SAP riservato ai dati e uno
alla gestione; ad esempio nel livello PHY troviamo il PD-SAP (PHY Data-SAP) e il
PLME-SAP (PHY Layer Management Entity-SAP) (fig. 3.5(b)). Il PLME ha inoltre la
responsabilit` di mantenere un database (PIB - PAN Information Base) con le informa-
             a
zioni relative al livello PHY, come ad esempio il canale e la frequenza di trasmissione.
Capitolo 3. Lo standard ZigBee                                                              50


                  Indication Request
                                                    PD-SAP               PLME-SAP
        Service User
          (user-N)
                                                                            PLME
                 Service Provider
                     (layer-N)                  PHY layer                    PHY
        Service User                                                         PIB
          (user-N)
                  Response Con rm                             RF-SAP
         (a) Invocazione di primitive                   (b) I SAP dello strato PHY



                           Figura 3.5: Organizzazione in SAP di ZigBee


3.4.2     Lo strato MAC

Le responsabilit` fondamentali dello strato MAC, come in qualunque altro protocollo
                a
wireless, sono quelle di fornire una comunicazione affidabile tra un nodo e i suoi vicini,
cercando di evitare collisioni sul mezzo trasmissivo. Esso ha inoltre la funzione di as-
semblare e decomporre i pacchetti dati, in arrivo e un uscita, e di garantire un primo
livello di indirizzamento al fine di mantenere la PAN operativa.


3.4.2.1     Tipi di dispositivi IEEE 802.15.4

In IEEE 802.15.4 sono state definite tre tipologie di dispositivi:

   • Reduced Function Device (RFD)

          – Ha funzionalit` limitate, per ridurne il costo e la complessit`
                          a                                               a
          – Utilizzo tipico agli edge della rete
          – Supporta unicamente la topologia a stella

   • Full Function Device (FFD)

          – Supporta tutte le funzioni specificate da 802.15.4
          – Ideale per svolgere il ruolo di router e per interconnettere altre tecnologie
          – Supporta qualsiasi topologia di rete
          – Pu` sostituire il PANC
              o

   • PAN Coordinator (PANC)

          – Caso particolare di FFD
          – Si occupa dello startup della rete e dell’assegnazione degli indirizzi
          – Ha conoscenza globale della rete
          – Richiede maggiori risorse energetiche e di calcolo
Capitolo 3. Lo standard ZigBee                                                               51


3.4.2.2   Le modalit` di accesso al canale
                    a

Il canale wireless ` condiviso per definizione e per garantirne una corretto utilizzo da par-
                   e
te di tutti i dispositivi della rete, devono essere previste particolari politiche di accesso.
Lo strato MAC di IEEE 802.15.4 prevede due modalit`: con beacon e senza beacon.
                                                  a


Accesso con beacon

In questa modalit` viene utilizzata una struttura a 16 slot denominata superframe, deli-
                 a
mitata da beacon che hanno la funzione di identificare la PAN, sincronizzare i dispositivi
ad essa collegati e descrivere la struttura del superframe; tra un beacon e l’altro i nodi
possono entrare in una modalit` a basso consumo se non hanno dati da trasmettere.
                              a
   Durante la fase di contesa (Contention Access Period), basata essenzialmente su
slotted CSMA-CA, i dispositivi si contendono l’accesso al mezzo per la trasmissione.
Per applicazioni in cui ` richiesta bassa latenza, il PANC pu` riservare dei Guaranteed
                        e                                    o
Time Slot in cui non ` richiesta la fase di contesa del CSMA-CA (fig. 3.6).
                     e

               Beacon                                                               Beacon
                                      CAP                               CFP




                                                                              GTS
                                                            GTS



                                                                        GTS
                                                                  GTS




                  0   1   2   3   4    5    6   7   8   9   10 11 12 13 14 15

                                                tempo
               CAP - Contention Access Period
               CFP - Contention Free Period
               GTS - Guaranteed Time Slot



                           Figura 3.6: Accesso al mezzo con beacon



Accesso senza beacon

Nelle reti senza beacon, viene impiegato esclusivamente CSMA/CA; un dispositivo che
vuole tentare di inviare dei dati prima si mette in ascolto sul canale (mediante le primitive
di ED definite precedentemente al paragrafo 3.4.1.3) e, se lo trova libero, trasmette. Nel
caso in cui il canale ` occupato da un’altra comunicazione, viene attivata una funzione
                      e
di backoff che ` sostanzialmente un timer per indicare quando ritentare la ritrasmissione
              e
(fig. 3.7). Per una maggiore affidabilit` ogni messaggio pu` essere confermato dal
                                     a                  o
relativo ack, inviato senza bisogno della procedura di ED.
   Quando la rete ` priva di beacon, i dispositivi tengono i loro ricevitori sempre attivi,
                  e
provocando un consumo di energia maggiore. Nella pratica alcuni dispositivi sono co-
stantemente pronti a ricevere, mentre altri si limitano a trasmettere in presenza di uno
Capitolo 3. Lo standard ZigBee                                                            52


stimolo esterno. L’esempio tipico di una rete di questo tipo ` dato dagli interruttori
                                                             e
wireless: il nodo ZigBee nella lampada pu` essere costantemente in ricezione, avendo la
                                         o
possibilit` della connessione diretta alla rete elettrica, mentre l’interruttore (al pari di
          a
un telecomando) alimentato a batteria pu` rimanere inattivo fino all’istante in cui vi
                                        o
` necessit` di mandare un segnale. A quel punto si attiva, invia il comando, riceve un
e         a
segnale di acknowledge e ritorna inattivo. Tale distinzione si rispecchia perfettamente
nella differenza tra dispositivi RFD e FFD.

                              Dispositivo A                          Dispositivo B

                                    Veri ca
                                    canale      Canale
                                               occupato
                Tempo di
                 backo
                                    Veri ca                 Canale
                                    canale                  libero
                                               Invio dati




                           Figura 3.7: Accesso al mezzo senza beacon



3.4.2.3   Indirizzamento

Il MAC di 802.15.4 possiede due modalit` di indirizzamento a 16 e 64 bit. L’indirizzo a 64
                                       a
bit (extended address) ` cablato nel dispositivo e permette di distinguerlo univocamente
                       e
da tutti gli altri. La modalit` a 16 bit (short addressing) pu` essere utilizzata all’interno
                              a                               o
della singola PAN e permette di indirizzare fino a 65536 (216 ) dispositivi; ci` consente
                                                                              o
di ridurre l’overhead dovuto all’indirizzamento mediante extended address.


3.4.2.4   Primitive offerte dallo strato MAC

Lo strato MAC ha la responsabilit` di fornire le seguenti funzionalit` ai livelli superiori:
                                 a                                   a

    - Generare dei beacon se il dispositivo ` un PAN Coordinator
                                            e

    - Supportare la connessione e la disconnessione dalla PAN

    - Supportare la sicurezza (controllata comunque dai livelli superiori)

    - Utilizzo di CSMA-CA per accedere al canale

    - Gestire il meccanismo dei GTS

    - Fornire un collegamento affidabile tra due peer livello MAC
Capitolo 3. Lo standard ZigBee                                                                       53


Come accadeva nello strato PHY, la comunicazione avviene mediante i SAP riservati
ai dati e al controllo (fig. 3.8, il MCPS-SAP (MAC Common Part Sublayer-SAP) e il
MLME-SAP (MAC Layer Management Entity-SAP) rispettivamente. Anche in questo
caso lo strato conserva un PIB in cui saranno contenuti ad esempio il periodo di beacon,
l’extended address e i parametri della funzione di backoff.

                                MCPS-SAP                MLME-SAP

                                                          MLME
                             MAC Common
                             Part Sublayer                 MAC
                                                           PIB

                                 PD-SAP                 PLME-SAP


                               Figura 3.8: I SAP dello strato MAC



3.4.3     Lo strato NWK

Come accennato precedentemente e come si pu` osservare in figura 3.2, le fondamenta
                                           o
su cui ZigBee fa affidamento sono lo strato PHY e MAC definiti da IEEE 802.15.4. Alle
funzionalit` di questi, esso aggiunge la definizione dello strato di rete (NWK) e dello
           a
strato applicazione (APL). In particolare il primo dei due, del quale ci occuperemo in
questo paragrafo, permette di creare delle topologie di rete complesse che vanno oltre
quelle disponibili fino allo strato MAC4 . Tale strato si occupa principalmente di: gestire
la connessione alla rete di nuovi dispositivi, instradare pacchetti verso destinazioni non
direttamente raggiungibili, identificare le route verso nuove destinazioni, assegnare di
indirizzi (short address e PAN address) coerenti e infine applicare la sicurezza sui nodi
che ne fanno richiesta.


3.4.3.1     Tipi di dispositivi ZigBee

Nelle reti ZigBee, i dispositivi ricalcano fedelmente quelli precedentemente descritti nella
sezione 3.4.2.1. Anche in questo caso essi si distinguono dalle funzionalit` offerte e, di
                                                                           a
conseguenza, dalla complessit`. I possibili dispositivi ZigBee rientrano in una delle
                             a
seguenti categorie, con le responsabilit` e funzionalit` elencate:
                                        a              a

    • ZigBee Coordinator (ZC)

          – Startup della rete e decisione del relativo PAN-ID
   4
     Anche se non specificato esplicitamente, al livello MAC sono disponibili solo due topologie di rete:
quella a stella e quella peer-to-peer [IEE06]
Capitolo 3. Lo standard ZigBee                                                          54


          – Permettere ai dispositivi l’entrata e l’uscita (join/leave) dalla rete
          – Svolgere tutte le funzionalit` di uno ZR
                                         a
          – Ruolo di trust center in una rete con supporto della sicurezza

   • ZigBee Router (ZR)

          – Instradare dati per altri dispositivi
          – Permettere ai dispositivi l’entrata e l’uscita (join/leave) dalla rete
          – Conservare i messaggi destinati ai suoi ZED
          – Svolgere opzionalmente tutte le funzioni di uno ZED

   • ZigBee End Device (ZED)

          – Possibilit` di funzionare in modalit` risparmio energetico effettuando polling
                      a                         a
          – Costo e complessit` limitati, dato che non supporta operazioni relative alla
                              a
            rete (ad esempio instradamento o join/leave di altri dispositivi)

3.4.3.2    Topologie di rete

Per quanto riguarda le topologie di rete, ZigBee permette di definire configurazioni a
stella, a cluster-tree e mesh. In ognuna di esse deve essere presente esattamente uno ZC e
un qualsiasi numero di ZR e ZED. Tutte le strutture di rete sono basate su una gerarchia
genitore-figlio; quando lo ZC effettua lo startup della rete (decidendo il PAN-ID) gli altri
dispositivi che effettuano successivamente il join diventano suoi figli, impostando lo ZC
come genitore. Ci` ovviamente vale anche per i ZR, che possono essere genitori di ZED
                 o
o di altri ZR.
   Nella gestione delle funzionalit` di rete, i nodi genitori hanno delle specifiche respon-
                                   a
sabilit`. In alcune configurazioni di rete infatti, gli ZED comunicano solo periodicamente
       a
con essi, per inviare messaggi e verificarne la presenza, dopodich´ possono entrare in mo-
                                                                 e
dalit` sleep per il risparmio energetico. Per questo motivo la complessit` di uno ZC o di
     a                                                                   a
uno ZR, in termini di risorse hardware e software, sar` sicuramente superiore a quella
                                                      a
di uno ZED.
   Vediamo ora in dettaglio le topologie di rete che Zigbee permette di formare:

       `
Stella E composta da uno ZC e diversi ZED disposti come in figura 3.9(a). Tutti i
      messaggi transitano attraverso lo ZC.

Cluster-tree La topologia cluster-tree ` formata da uno ZC, uno o pi` ZR e, opzio-
                                       e                            u
      nalmente, da ZED. Essa estende la struttura a stella, aggiungendo le funzionalit`
                                                                                      a
      dei ZR. Tutti gli scambi dati seguono la gerarchia genitore-figlio; alla ricezione di
      un messaggio lo ZR verifica se l’indirizzo della sorgente ` un dispositivo ad esso
                                                               e
      associato, in caso contrario lo inoltra al suo nodo genitore (fig. 3.9(b)).
Capitolo 3. Lo standard ZigBee                                                                55


Mesh Questa interessante topologia consente a dispositivi che si trovano nel medesimo
     range di trasmissivo di comunicare direttamente, a differenza di quello che accade
     nelle reti cluster-tree. In questo modo se il destinatario ` direttamente connesso, il
                                                                e
     messaggio impiegher` un hop, altrimenti esso verr` instradato seguendo il percorso
                        a                             a
     deciso dall’algoritmo di routing (fig. 3.9(c)).

   Occorre specificare che, sebbene lo ZC sia richiesto per avviare la rete, esso non
` necessario per il suo successivo funzionamento (tranne che per la topologia a stella
e
ovviamente). Questa ` una caratteristica che ritroviamo anche nei ZR e che rappresenta
                    e
una delle peculiarit` di ZigBee, ovvero la capacit` di resistere ai guasti organizzandosi
                    a                             a
autonomamente.




                  (a) Topologia a stella                        (b) Topologia cluster-tree




                                                                      ZigBee Coordinator
                                                                         (802.15.4 PAN
                                                                          Coordinator)
                                                                         ZigBee Router
                                                                         (802.15.4 FFD)

                                                                        ZigBee End Device
                                                                       (802.15.4 RFD o FFD)




                                           (c) Topologia mesh



                             Figura 3.9: Topologie di rete ZigBee



3.4.3.3     Algoritmi di routing

ZigBee essendo un protocollo per WSN, richiede algoritmi di routing che non generino
traffico eccessivo per aggiornare le strutture dati dello strato di rete, come pu` accadere
                                                                               o
ad esempio in soluzioni basate su Distance Vector e Link State [PD03]. Risulta necessario
pertanto riferirsi a classi di algoritmi di routing dedicati alle MANet (Mobile Ad Hoc
Network).
   Nello strato NWK ZigBee vengono impiegati sostanzialmente algoritmi gerarchici con
qualche ottimizzazione sulle tabelle di instradamento quando possibile. In particolare
vengono utilizzati:
Capitolo 3. Lo standard ZigBee                                                           56


  1. Ad Hoc On Demand Distance Vector (AODV)

  2. Motorola Cluster-Tree algorithm

descritti ampiamente in [Lan03, Per03, Erg04].


3.4.3.4   Sicurezza

Come ` possibile osservare in figura 3.2, ZigBee offre anche meccanismi di sicurezza,
     e
gestiti dal livello SSP. Tali meccanismi sono basati su un algoritmo AES a 128 bit,
aggiungendo alle funzionalit` di base offerte dal MAC, servizi per la scelta delle chiavi
                            a
e il loro trasporto, la gestione dei dispositivi e la protezione dei frame. La gestione `
                                                                                        e
affidata ad un trust center che si occupa principalmente di:

   • Autenticare i dispositivi possono accedere alla rete

   • Aggiornare periodicamente le chiavi di rete

   • Abilitare la sicurezza end-to-end tra dispositivi

Di solito queste responsabilit` sono affidate al coordinatore o comunque ad un dispo-
                              a
sitivo con maggiori risorse di calcolo. Ovviamente, in ambienti in cui la sicurezza non
` fondamentale (come ad esempio nel monitoraggio nell’agricoltura di precisione), tali
e
servizi vengono disattivati per aumentare l’autonomia energetica e le prestazioni della
rete. Per maggiori dettagli sui meccanismi di sicurezza si consulti [Zig06].


3.4.3.5   Primitive offerte dallo strato NWK

Lo strato NWK ha la responsabilit` di fornire le seguenti funzionalit` ai livelli superiori:
                                 a                                   a

    - Applicare gli algoritmi di routing idonei alla topologia di rete utilizzata

    - Capacit` di garantire l’autenticit` e la confidenzialit` delle trasmissioni
             a                          a                   a

    - Creazione di una nuova rete (ZC)

    - Gestire la connessione e disconnessione (join/leave) a reti esistenti (ZR,ZED)

    - Assegnazione di indirizzi ai nuovi dispositivi

    - Conoscenza dei dispositivi nel proprio raggio trasmissivo (neighborhood )

    - Possibilit` di scoprire nuove route (route discovery)
                a

La comunicazione del NWK con gli strati superiori avviene mediante due SAP, il NLME-
SAP (Network Layer Management Entity-SAP) e il NLDE-SAP (Network Layer Data
Entity-SAP) (fig. 3.10). Mediante il primo vengono gestite tutte le primitive di ricerca
Capitolo 3. Lo standard ZigBee                                                             57


di reti, join/leave e route discovery. Il NLDE-SAP invece permette l’invio e la ricezione
di dati in tutte i nodi della rete, sfruttando gli algoritmi di instradamento. Anche in
questo caso lo strato conserva un IB in cui saranno contenuti ad esempio l’indirizzo di
rete(short address), le tabelle di instradamento, le tabelle dei vicini e i parametri relativi
alla sicurezza.

                               NLDE-SAP             NLME-SAP

                                                       NLME
                                   NLDE                NWK
                                                        IB

                              MCPS-SAP              MLME-SAP


                            Figura 3.10: I SAP dello strato NWK



3.4.4    Lo strato applicazione

Lo strato di applicazione (APL) di ZigBee ` formato dai sottostrati APS (Application
                                          e
support Sublayer) e ZDO (ZigBee Device Object) e dalle applicazioni vere e proprie
(Application Object - AO), definite dagli utenti finali. Le responsabilit` di APS inclu-
                                                                       a
dono il mantenimento delle tabelle di binding (che permette di far corrispondere due
dispositivi in base ai servizi offerti e richiesti) e lo scambio di messaggi tra due disposi-
tivi con binding. In figura 3.11 ` possibile comprendere meglio tale concetto: in questo
                                e
caso l’interruttore 1 ` in binding con le lampade (1,2,3), mentre l’interruttore 2 solo con
                      e
la lampada 4. Tale funzionalit` ` di ausilio anche nell’indirizzamento, in quanto con
                              a e
una singola operazione ` possibile inviare messaggi a categorie di dispositivi specifici
                       e
(ad esempio l’invio del comando di accensione a tutte le lampade in binding con uno
specifico interruttore).



                                              Radio
                                           Lamp 1   Lamp 2   Lamp 3   Lamp 4

                           Radio
                       Switch 1 Switch 2




                               Figura 3.11: Concetto di binding
Capitolo 3. Lo standard ZigBee                                                          58


   Lo ZDO si occupa invece di definire i ruoli dei dispositivi all’interno della rete (ZC,ZR
o ZED), eseguire discovery dei nodi, ottenendo informazioni sui servizi applicativi offerti
e gestire le richieste di binding. Da un punto di vista applicativo, lo ZDO ` l’interfaccia
                                                                            e
che hanno gli AO verso lo stack ZigBee.
   Su un dispositivo ZigBee possono essere caricate fino a 240 applicazioni (AO) dif-
ferenti, ognuna in esecuzione su un endpoint differente. Gli endpoint possono essere
paragonati al concetto di porta TCP e permettono ad altri dispositivi di comunicare
con le singole applicazioni. Per esempio, un controllo a distanza potrebbe impiegare
l’endpoint 1 per controllare le luci in cucina, l’endpoint 2 per gestire l’impianto di con-
dizionamento in camera da letto e l’endpoint 3 per controllare il sistema di sicurezza
dell’abitazione. Come ` possibile osservare in figura 3.2, lo ZDO stesso ` considerato un
                      e                                                 e
AO, in esecuzione sull’endpoint 0.


Application Profile

Concludiamo questa panoramica sullo stack ZigBee parlando degli Application Profile,
un insieme di specifiche che descrive il comportamento di una particolare applicazione
distribuita. Esso definisce l’insieme dei dispositivi impiegati e il formato dei messaggi
(cluster ) scambiati tra di essi. Ad esempio, esistono dei profili standard per l’Home
Automation e il controllo industriale, definiti ed approvati dalla ZigBee Alliance.
   Esistono due tipi di application profile:

   • Application profile pubblici: applicazioni interoperabili approvate dalla ZigBee
     Alliance mirate a risolvere uno specifico problema.

   • Application profile privati: definiti dai singoli produttori per interagire con i
     loro dispositivi ZigBee.

I dispositivi nell’ambito del medesimo profilo possono comunicare tra loro per mezzo di
cluster, che rappresentano il formato dei possibili messaggi di input o di output. Per
esempio nel profilo dell’Home Automation esiste un cluster dedicato all’impostazione
delle temperature di soglia di un termostato.
Parte II

Sperimentazione, progettazione e
       implementazione




               59
Capitolo 4

Analisi della qualit` del segnale in
                    a
ambienti indoor/outdoor

Come abbiamo visto al Capitolo 3, a seguito di un periodo di studio delle varie soluzioni
orientate alle WSN, la scelta ` stata indirizzata verso lo standard ZigBee e la piattaforma
                              e
proposta da Freescale, per la cui descrizione approfondita si rimanda al paragrafo 4.1.
   La prima esigenza dopo aver selezionato la piattaforma hardware, ` stata senz’altro
                                                                    e
quella di analizzarne il suo comportamento durante le trasmissioni, al fine di determi-
narne l’idoneit` alla realizzazione di un sistema di localizzazione. La grande quantit` di
               a                                                                      a
dati raccolti ci ha permesso, non solo di verificare in parte alcuni concetti teorici sulle
trasmissioni wireless, ma anche di definire gradualmente il problema reale che volevamo
risolvere.
   Come vedremo nelle sezioni 4.2 e 4.3, i test effettuati ricalcano abbastanza fedelmente
quanto affermato al Capitolo 2 sulla propagazione delle onde radio in ambienti outdoor
e indoor; nella prima condizione possiamo stimare la perdita di potenza da parte del
segnale trasmesso utilizzando l’equazione di Friis (eq. 2.2), mentre nella seconda condi-
zione, anche utilizzando i modelli di attenuazione indoor (par. 2.2), non ` semplice far
                                                                          e
risultare tali approssimazioni, a meno di tuning onerosi in termini di tempo sui parame-
tri e comunque limitandone la correttezza ad un particolare tipo di ambiente. Nel resto
del capitolo verranno affrontate anche analisi relative alle prestazioni delle antenne e al
comportamento dei dispositivi in movimento, trasportati ad esempio da robot mobili.
   Tutte le misurazioni effettuate per la potenza del segnale ricevuto verranno espresse
in unit` LQI (Link Quality Indicator) e a volte ci si riferir` indifferentemente alla qua-
       a                                                     a
lit` o alla potenza del segnale ricevuto; per una spiegazione dettagliata al riguardo, si
   a
rimanda al paragrafo 4.1.4.




                                            60
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                     61


4.1      La piattaforma hardware/software di riferimento

4.1.1     Hardware

La piattaforma utilizzata durante tutto il periodo di tesi ` quella di Freescale, uno dei
                                                           e
maggiori produttori di semiconduttori a livello mondiale e membro di ZigBee Alliance.
`
E stato possibile acquistare dei kit di valutazione, avendo a disposizione un buon numero
di nodi e tutto l’occorrente per effettuare i test necessari.
    Ogni nodo contiene un transceiver basato sul SiP MC13213 [Sem07b, Sem07a], com-
pliant con lo standard IEEE 802.15.4 e con la specifica ZigBee 2006, funzionante alle
frequenze ISM a 2.4 GHz, con un potenza di trasmissione regolabile tra 3 dBm e -15
dBm e una sensibilit` in ricezione di -95 dBm. All’interno dell’MC13213 ` presente un
                    a                                                   e
microcontrollore (Microcontroller Unit - MCU) della famiglia HCS08 a 40 MHz, con 60
KB di memoria flash e 4 KB di memoria RAM, che permette di avere contemporanea-
mente sullo stesso SiP sia lo stack per le comunicazioni che quello per le applicazioni.
In figura 4.1 ` possibile osservare un dettaglio della Sensor Reference Board (SRB), la
             e
scheda su cui sono installati il SiP MC13123, la memoria flash, il circuito di ricezione,
le interfacce I/O e i sensori. Questa scheda, insieme alla NCB (Network Coordinator
Board)1 , viene fornita nei kit di valutazione e permette di testare in modo immediato le
potenzialit` di ZigBee. Spesso l’utente finale pu` essere interessato solo alle funzionalit`
           a                                    o                                         a
di comunicazione di queste schede e pu` decidere, in base alle proprie esigenze2 , come
                                      o
progettare un nuovo tipo di scheda basata sul chip MC13213. A livello di interfacce

General purpose                                                                    Interfaccia BDM
      I/O

                                                                                  Sensore temperatura
                                                                                  Accelerometro XYZ
 Interfaccia USB
                                                                                  MC13213 Transceiver
                                                                                  Buzzer
  Alimentazione                                                                   Memoria ash
     esterna                                                                      LED
      Interruttore
        ON/OFF
                                                                                   Tasti funzione



      Figura 4.1: La Sensor Reference Board (SRB) basata sul SiP MC13213 di Freescale
    1`
      E una scheda con le stesse funzionalit` della SRB, ma fornisce in aggiunta un display LCD a due
                                            a
linee e l’interfaccia RS232
    2
      Ad esempio necessita di un diverso circuito di ricezione per aumentare la portata trasmissiva e non
ha bisogno dei sensori, per ridurre consumi e dimensioni
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                 62


di comunicazione, esso supporta due porte seriali (Serial Communications Interface -
SCI), sia RS232 (presente solo sulla NCB) che USB, per il collegamento ad unit` di
                                                                                 a
                              `
elaborazione mediante UART. E possibile inoltre far comunicare il nodo con dispositivi
esterni (ad esempio particolari sensori) mediante le porte GPIO (General Purpose I/O),
costruendo appositi circuiti di interfaccia.
    Sulla SRB sono presenti inoltre un sensore di temperatura (LM61B della National
Semiconductors), un accelerometro a tre assi (MMA7260Q di Freescale) e un buzzer
audio. Essa richiede una tensione di alimentazione di 3.3 V, che pu` essere fornita me-
                                                                   o
diante due batterie AA, l’interfaccia USB o l’alimentatore esterno. Per quanto riguarda i
consumi, la MCU ha delle modalit` di power-saving, anche se essi dipendono fortemente
                                a
dal numero di sensori utilizzati e soprattutto dalla frequenza delle trasmissioni dati; con
le sole batterie comunque, il dispositivo pu` avere un’autonomia di oltre un anno.
                                            o


4.1.1.1    Antenna

La progettazione di una antenna ` un fattore critico per ottenere un buon range trasmis-
                                e
sivo e un throughput stabile in una applicazione wireless. Questo ` vero specialmente
                                                                  e
in dispositivi a bassa potenza e di dimensioni ridotte come quelli considerati, dove lo
spazio riservato all’antenna ` inferiore a quello ideale.
                             e
    La struttura dell’antenna dovrebbe avere dimensioni ragionevoli rispetto alla lunghez-
za d’onda del campo elettromagnetico. Una dimensione naturale ` ad esempio met` della
                                                              e               a
lunghezza d’onda; a 2.4 GHz equivale a circa 6 cm e permette di lavorare alla frequenza
di risonanza. Scendere sotto questa frequenza pu` causare una bassa efficienza.
                                                o
    Nel nostro caso, lo spazio sulla scheda permette di avere una antenna di un quarto
della lunghezza d’onda con struttura a monopolo, in cui una met` ` formata dal filo
                                                               a e
vero e proprio e l’altra dal piano di massa3 . In particolare, sia la SRB che la NCB,
montano una F-Antenna [Sem06] che ` possibile osservare in figura 4.2. Questo tipo
                                  e
di antenna ` utilizzata ampiamente, data la sua compattezza, un pattern di radiazione
           e
quasi omnidirezionale e una buona efficienza. Ovviamente le sue ridotte dimensioni
portano a performance minori (in termini di guadagno e range trasmissivi) e non sempre
questo ` accettabile; tuttavia, nei test affrontati, le prestazioni sono risultate adeguate.
       e
    In particolare, nei primi esperimenti di trasmissione, abbiamo rilevato un range tra-
smissivo massimo di circa 100 m, in condizioni di LOS e con potenza in trasmissione di 0
dBm, ottenendo un Packet Error Rate (PER) del 5% su 1000 pacchetti da 20 byte invia-
ti. Per quanto riguarda il pattern di radiazione, esso appare abbastanza uniforme come
` mostrato in figura 4.2(c); come vedremo ci` risulter` efficace in situazioni di mobilit`
e                                          o         a                                a
dei dispositivi. Al paragrafo 4.1.2 sono riportati alcuni test riguardo l’orientamento delle
antenne.
  3
    Costituito ad esempio da rimanenze tra i collegamenti sul circuito stampato, come collegamenti di
massa e alimentazione.
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                        63


                         Conduttore




            Circuito stampato

               Piano di massa

         (a) Struttura di una F-Antenna                   (b) Particolare dell’F-Antenna montata sulla
                                                          SRB

                                5
                             0
                            -5
                           -10
                           -15
                           -20
                                                             Polarizzazione verticale (dBi)
                           -25                               Polarizzazione orizzontale (dBi)
                           -30




                                      (c) Diagramma di radiazione [Sem06]



                                    Figura 4.2: Struttura ad F-Antenna


4.1.2    Test di orientamento dell’antenna

Per verificare empiricamente il pattern di radiazione dell’antenna, trasmettitore e ri-
cevitore sono stati posti alla distanza di due metri, ad un’altezza di 50 cm dal suolo e
variando l’orientamento del ricevitore ad ogni ripetizione, come ` possibile osservare nella
                                                                 e
figura 4.3. I valori riportati sono ottenuti mediando il valore del Link Quality Indicator
(par. 4.1.4) su 100 pacchetti ricevuti. Dai risultati ottenuti, le antenne dei dispositi-
vi sembrano avere un pattern abbastanza uniforme in tutte le direzioni, soprattutto se
mantenuti in posizione orizzontale.


4.1.3    Software

Il kit di sviluppo impiegato include tre tipi di stack protocollari, con cui ` possibile
                                                                             e
sviluppare applicazioni a differente livello di complessit`:
                                                         a

                  `
Simple MAC (SMAC) E uno stack proprietario di Freescale e pu` essere utilizzato
                                                            o
      per implementare semplici reti di tipo punto-punto e a stella. Data la sua sem-
      plicit` ` stato impiegato nelle fasi preliminari, per testare alcune caratteristiche
            a e
      trasmissive dei dispositivi.
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                        64




                      Figura 4.3: Test di orientamento dell’antenna


              `
IEEE 802.15.4 E lo stack che segue lo standard per le LR-WPAN IEEE 802.15.4 e
     permette realizzare applicazioni su reti a stella e mesh (con tutti i dispositivi nello
     stesso raggio trasmissivo).

ZigBee 2006 Include tutte le caratteristiche descritte al capitolo 3 per quanto riguarda
     routing, sicurezza e livello applicazione.

   La programmazione dei dispositivi ` in linguaggio C, mediante l’IDE Codewarrior per
                                     e
la MCU HCS08; una volta generato l’eseguibile esso viene caricato sulla flash mediante
un apposito programmatore collegato all’interfaccia BDM (Background Debug Module)
(fig. 4.1), che permette anche di eseguire il debug direttamente sul dispositivo. In ausilio
al progettista, ` presente inoltre un software (BeeKit) che consente principalmente di
                e
creare applicazioni da template, impostare i numerosi parametri presenti negli stack
protocollari e successivamente esportare il progetto sotto forma di file XML, per le fasi
di programmazione, compilazione e debugging in Codewarrior.


4.1.4   Link Quality Indicator (LQI)

Come indicato nello standard IEEE 802.15.4, la misura del LQI ` una caratterizzazione
                                                              e
della potenza e/o della qualit` del segnale, durante la ricezione di un pacchetto. Questa
                              a
funzionalit` viene offerta dallo strato PHY (par. 3.4.1.3) e pu` essere implementata
           a                                                  o
impiegando le primitive di ED, una stima del rapporto segnale-rumore (SNR) o una
combinazione dei due. Tale misurazione viene effettuata su ogni pacchetto ricevuto,
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                         65


inserita nelle strutture dati di livello MAC ed espressa come un intero compreso tra
0x00 (0) e 0xFF (255). Il valore minimo e massimo di LQI (0x00 e 0xFF) sono associati
con la minima e la massima qualit` del segnale avvertibile dal ricevitore e tutti i valori
                                 a
compresi sono uniformemente compresi fra questi due limiti.
   Nel caso dei dispositivi utilizzati, il LQI ` direttamente correlato alla potenza del
                                               e
segnale ricevuto (RSS), tramite la seguente funzione di conversione:

                                        13 · (190 + 2 · RSS)
                                LQI =                        ,                         (4.1)
                                                  8

in cui RSS ` espresso in dBm. Come ` facile verificare con facili calcoli, dato che il RSS
           e                       e
oscilla tra -18 dBm e -95 dBm (massima sensibilit` in ricezione), otterremo 0 e 255 come
                                                 a
valori minimo e massimo per il LQI.


4.2     Rilevazioni outdoor
La prima fase di esperimenti di trasmissione ha avuto lo scopo di verificare il compor-
tamento dei dispositivi, al variare della distanza tra trasmettitore e ricevitore, in primo
luogo per trovare una qualche relazione matematica fra potenza del segnale in ricezione
e distanza.
   Per la parte outdoor il setup ` quello riportato in figura 4.4; i nodi trasmettitore e
                                 e
ricevitore sono in condizioni di LOS, posizionati staticamente a 50 cm dal suolo e con
le antenne orientate nel verso di trasmissione. Le misurazioni della potenza del segnale
ricevuto sono state effettuate inviando ciclicamente un pacchetto ogni 300 ms per un
totale di 100 pacchetti ogni posizione, campionando una distanza di 20 m a step di 2
m. Tali test sono stati successivamente ripetuti per 20 volte, in luoghi, giorni e orari
differenti. In tutti i casi, la potenza di trasmissione, ` stata lasciata al valore di default
                                                        e
(0 dBm). Dopo la fase di rilevazione dei dati (consultabili integralmente al paragrafo




                           Figura 4.4: Setup per i test outdoor
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                      66


4.2.1) ` stato utile utilizzare degli strumenti statistici, per rappresentare sinteticamente
       e
i risultati ottenuti. In figura 4.5 ` possibile osservare media e varianza delle differenti
                                   e
osservazioni, per ogni distanza tra 1 e 20 metri. Per quanto riguarda l’andamento della
media, come ci si pu` aspettare, essa decresce all’aumentare della distanza, sebbene
                    o
intorno ai 4 m ` abbastanza evidente uno strano picco, dovuto forse a una non linearit`
               e                                                                      a
nelle funzioni di ED o nel circuito di ricezione (vedere appendice A al riguardo). Dal
grafico della varianza si comprende invece quanto sia minore la dispersione per distanze
inferiori ai 10 m (escludendo la distanza di 4 m), a causa dell’azione pi` intensa dei
                                                                         u
fenomeni fisici come multipath e scattering (par. 2.1).

                                               Distance vs. LQI (20 observations)
               180
                                                                                         Average LQI
               160

               140
    LQI




               120

               100

               80

               60
                     0        2     4      6       8        10      12         14   16   18     20
                                                         Distance (m)

                                                   Distance vs. LQI variance
               250

               200

               150
    Variance




               100

               50

                0
                          1   2     4      6       8        10      12         14   16   18     20
                                                         Distance (m)




                         Figura 4.5: Andamento del LQI con la distanza (media e varianza)


   Nonostante questa irregolarit` nei valori, un risultato interessante ` stato quello di
                                a                                       e
poter effettivamente verificare l’equazione 2.3 per il path-loss; impostando un sistema
sovradimensionato sui dati a disposizione e risolvendo ai minimi quadrati (con d0 = 1 m
e P0 = −42.11 dBm) si ottiene la soluzione np = 1.7018, ovvero np ≈ 2 come nelle
condizioni di spazio libero. Questo era abbastanza prevedibile, considerate le condizioni
di LoS in cui i test sono stati realizzati. In figura 4.6 inoltre, ` facile notare come
                                                                  e
l’andamento del LQI sulla singola distanza sia quasi gaussiano, a dimostrazione di una
discreta regolarit` nei valori riportati.
                  a
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                                                                                                                                        67

                             Distance: 1 m - Mean: 171.875 - Var: 29.5321                               Distance: 2 m - Mean: 157.6685 - Var: 92.3393                           Distance: 4 m - Mean: 124.8035 - Var: 234.6002
                        1                                                                          1                                                                           1




    Pr(LQI interval)




                                                                               Pr(LQI interval)




                                                                                                                                                           Pr(LQI interval)
                       0.5                                                                        0.5                                                                         0.5




                        0                                                                          0                                                                           0
                             0      50       100      150     200      250                              0      50       100      150     200      250                            0      50      100      150     200      250
                                              LQI interval                                                               LQI interval                                                            LQI interval
                             Distance: 6 m - Mean: 137.5575 - Var: 66.2705                              Distance: 8 m - Mean: 130.837 - Var: 46.6909                           Distance: 10 m - Mean: 119.0145 - Var: 133.8778
                        1                                                                          1                                                                           1
    Pr(LQI interval)




                                                                               Pr(LQI interval)




                                                                                                                                                           Pr(LQI interval)
                       0.5                                                                        0.5                                                                         0.5




                        0                                                                          0                                                                           0
                             0      50    100      150     200      250                                 0      50   100      150     200      250                                   0      50       100      150     200      250
                                           LQI interval                                                              LQI interval                                                                    LQI interval
                         Distance: 12 m - Mean: 115.529 - Var: 112.2837                            Distance: 14 m - Mean: 106.6565 - Var: 114.4652                                  Distance: 16 m - Mean: 100.2205 - Var: 85.102
                        1                                                                          1                                                                           1
    Pr(LQI interval)




                                                                               Pr(LQI interval)




                                                                                                                                                           Pr(LQI interval)
                       0.5                                                                        0.5                                                                         0.5




                        0                                                                          0                                                                           0
                             0      50    100      150     200      250                                 0      50      100       150     200      250                               0       50     100      150       200     250
                                           LQI interval                                                                  LQI interval                                                               LQI interval
                         Distance: 18 m - Mean: 92.8835 - Var: 122.4617                                 Distance: 20 m - Mean: 90.25 - Var: 138.4326
                        1                                                                          1
    Pr(LQI interval)




                                                                               Pr(LQI interval)




                       0.5                                                                        0.5




                        0                                                                          0
                             0      50      100      150        200     250                             0      50       100      150     200     250
                                             LQI interval                                                                LQI interval




                                          Figura 4.6: Distribuzione dei valori del LQI per ogni intervallo


4.2.1                            Dati numerici rilevati

I seguenti dati sono stati rilevati utilizzando la configurazione descritta al paragrafo
4.2, configurando due nodi ZigBee, uno come trasmettitore e uno come ricevitore. Il
LQI medio ` calcolato mediando su 100 pacchetti ricevuti. Nel caso in cui il luogo
          e
                                                                                                                    LQI medio rilevato alla distanza (m)
    Data                                 Luogo
                                                            1           2                         4                 6      8        10        12       14                                            16             18          20
07/12/07                 15.00 Campagna               164.16          147.06      141.42                       131.02       124.54       110.86         106.08                           96.5      99.44            84.2      75.94
07/12/07                 15:30 Campagna               159.64          151.9       119.64                       122.28       120.76        95.74         105.58                           91.4      76.28            69.54     85.52
10/12/07                 14:30   Viale                172.83          160.18      126.55                       139.22       125.73        114.3         101.85                          102.96      96.1            96.57     65.79
10/12/07                 15:00   Viale                168.77          170.06      116.1                        138.71       125.89       113.85         110.85                          105.48     81.36            68.53      87.3
10/12/07                 15:30   Viale*               162.42          158.14      116.93                       127.95       121.55        86.44         84.34                           96.85      106.91           94.1      81.91
11/12/07                 15:00 Urbano                 173.65          147.57      102.61                       132.6         133         120.42         112.34                          100.48     94.71            94.89     84.16
11/12/07                 15:15 Urbano                 178.51          149.69      120.69                       146.59       124.42       126.02         122.22                          114.1      112.6            92.2      100.2
11/12/07                 15:30 Urbano                 178.77          157.12       110                         145.26       137.75       125.51         126.87                          112.36     104.14          109.95     110.28
11/12/07                 15:45 Urbano                 174.83          149.81      105.44                       133.85       133.97       125.42         117.24                          102.59     100.34           90.51     73.36
11/12/07                 16:00 Urbano*                175.04          143.02      112.1                        135.22       129.46       112.42         114.26                          105.38     95.04            96.61     99.51
19/12/07                 16:00   Viale                175.12          162.02      142.79                       149.89       126.2        121.54         125.12                          119.35     100.89           80.7      88.27
19/12/07                 16:15   Viale*               164.66          166.45      151.39                       145.58       133.1        124.39         124.72                          113.87     103.95            88       96.06
19/12/07                 16:30 Campagna               171.02          165.79      136.95                       140.16       135.95       127.64         121.31                          114.66     111.75          104.43     98.14
31/03/08                 16:30   Viale                175.96          166.25      132.62                       135.82       141.67       126.01         107.63                          78.15      99.25           103.88     101.58
31/03/08                 16:45   Viale*               175.72          165.94      124.01                       124.25       143.07       128.37         120.7                           119.78     114.72          100.17      108
31/03/08                 17:00   Viale                171.16          164.93      128.5                        143.79       136.15        129.1         118.85                          118.3      100.22          105.23     94.08
31/03/08                 17:15   Viale*               175.25          173.59       149                          147         133.9        132.88          126                            115.6      100.44          103.34     98.76
31/03/08                 17:45 Campagna               172.83          148.81      101.44                       130.85       138.97       123.42         119.24                          105.59     102.34           93.51     78.36
31/03/08                 18:00 Campagna*              170.04          141.02      116.1                        133.22       128.46       111.42         118.26                          103.38     98.04            94.61     93.51
31/03/08                 18:15 Campagna               177.12          164.02      141.79                       147.89       122.2        124.54         127.12                          116.35     105.89           86.7      84.27


                                                     Tabella 4.1: Misurazioni LQI in ambienti outdoor


della misurazione ` contrassegnato da un asterisco, la misurazione ` stata effettuata in
                  e                                                e
maniera simmetrica, invertendo la posizione di trasmettitore e ricevitore.
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                         68


4.3     Rilevazioni indoor
Nella seconda parte di test, realizzati in ambienti indoor, l’interesse ` stato rivolto a
                                                                        e
capire come sfruttare le informazioni relative alla qualit` del segnale. In questo ca-
                                                          a
so, trasformare la potenza del segnale ricevuto in una distanza, al fine di realizzare
un qualche metodo di localizzazione range-based, ` sembrato quasi immediatamente
                                                 e
un procedimento poco realistico e comunque gi` affrontato ampiamente in letteratura
                                             a
[SKOM06, BP00, BGGT07], con risultati poco brillanti.
   Anche i modelli di propagazione indoor, descritti al paragrafo 2.2, non risultano
particolarmente utili in quanto troppo dipendenti dallo specifico ambiente in cui, empi-
ricamente, vengono ricavati i diversi parametri, richiedendo una fase di tuning eccessi-
vamente complessa. Inoltre, anche dopo aver prodotto un modello abbastanza preciso,
ogni minima perturbazione nell’ambiente, come passaggio di persone, apertura o chiu-
sura di porte, pu` seriamente compromettere le misurazioni della qualit` del segnale, e
                 o                                                     a
di conseguenza il processo di localizzazione.


4.3.1    Test statici

In prima istanza, la sperimentazione ha previsto uno scenario statico, in cui un nodo
trasmettitore viene mantenuto fisso e un altro ricevitore viene spostato in posizioni ben
determinate, al fine di stilare una specie di mappa del segnale dell’ambiente. Anche
in questo caso, si trovano alla medesima altezza (50 cm), senza considerare importan-
te l’orientamento delle antenne. Le rilevazioni sono state effettuate principalmente in
una abitazione e al Dipartimento di Informatica e Sistemistica (DIS), ed ` possibile
                                                                         e
consultare integralmente i dati rilevati al paragrafo 4.3.4. Come esempio di riferimento
consideriamo la figura 4.7, in cui ` presente la pianta dell’abitazione, i punti in cui sono
                                  e
state fatte le rilevazioni, il valore LQI medio in quella posizione e l’icona del dispositivo
rappresenta il trasmettitore. Quello che risulta immediatamente ` l’impossibilit` di rica-
                                                                e               a
vare direttamente informazioni sulla distanza, a partire dal LQI: ad esempio la posizione
a ` pi` vicina a b ma presenta LQI minore. Ci` ` dovuto ovviamente all’attenuazione
  e u                                        oe
provocata dalla struttura e dagli altri fenomeni fisici della propagazione del segnale.
   Sebbene non sia possibile trasformare direttamente il LQI in una distanza, se con-
sideriamo globalmente tutti i valori, essi forniscono una buona indicazione di quanto i
nodi siano vicini: i valori della stanza in cui ` presente il trasmettitore sono nettamente
                                                e
maggiori rispetto ai valori delle altre stanze.


4.3.2    Test dinamici

L’ultima fase di test, rispetto alle altre, ha previsto la sperimentazione di trasmissioni in
condizioni di mobilit`. A questo scopo ` stato previsto l’utilizzo dei robot mobili su ruote
                     a                 e
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                69




                    Figura 4.7: Posizioni e rilevazioni di LQI nell’abitazione




                                                    4              8




                                                                               5
                                                        I




                                                                               E
                                                            C
                                                            D




                                                    7                      H                 6
                                                                           F




                                                                                      G

                                                    2
                                                               A               3             1
                                                                       B
      (a) Configurazione per il test                         (b) Percorsi seguiti dal robot



                                      Figura 4.8: Test dinamici
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                                      70


disponibili nel laboratorio SIED, descritti al paragrafo 1.2.1. La sperimentazione ` stata
                                                                                   e
eseguita mettendo un nodo trasmettitore fisso in un punto del laboratorio e installando il
nodo ricevitore sul robot, telecomandando quest’ultimo in modo da seguire dei path pre-
stabiliti (fig. 4.8(b)), durante il quale venivano scambiati pacchetti per estrarre il LQI.
In questa modalit` ` stato possibile valutare il comportamento dei dispositivi in movi-
                 ae
mento, in particolare le variazioni del LQI durante l’avvicinamento o l’allontanamento
del ricevitore. In figura 4.9 sono state rappresentate, per tutti i path seguiti dal robot,
le rispettive misurazioni del LQI (in blu) e le funzioni di fitting polinomiali calcolate su
di esse (in rosso); osservando i dati grezzi del LQI si notano ovviamente degli outlier,
causati da variazioni rapide della potenza del segnale ricevuto e dovuti principalmente
a fenomeni di fast fading. Utilizzando le funzioni di fitting invece, l’andamento appare
pi` evidente; ad esempio nel segmento E ` chiaro che il ricevitore si sta avvicinando al
  u                                     e
trasmettitore, mentre nel segmento A esso si avvicina per poi allontanarsi.

                   Segment: A                              Segment: B                            Segment: C
         200                                     200                                   200

         150                                     150                                   150
   LQI




                                           LQI




                                                                                 LQI
         100                                     100                                   100

         50                                      50                                    50
               0        50           100               0        50         100               0        50         100
                   Packet number                           Packet number                         Packet number

                   Segment: D                              Segment: E                            Segment: F
         200                                     200                                   200

         150                                     150                                   150
   LQI




                                           LQI




                                                                                 LQI




         100                                     100                                   100

         50                                      50                                    50
               0        50           100               0        50         100               0        50         100
                   Packet number                           Packet number                         Packet number

                   Segment: G                              Segment: H                            Segment: I
         200                                     200                                   200

         150                                     150                                   150
   LQI




                                           LQI




                                                                                 LQI




         100                                     100                                   100

         50                                      50                                    50
               0        50           100               0        50         100               0        50         100
                   Packet number                           Packet number                         Packet number




                                   Figura 4.9: Risultati dei test dinamici



4.3.3          Conclusioni

Come nei test precedenti, i risultati ricavati, non hanno una validit` generale ma se
                                                                     a
combinati opportunamente possono fornire delle indicazioni interessanti sui nodi. Ci`
                                                                                    o
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                                                 71


che appare evidente, almeno indoor, ` la difficolt` di realizzare un sistema di localiz-
                                    e           a
zazione range-based che sfrutti esclusivamente le informazioni estratte dalla qualit` del
                                                                                    a
segnale ricevuto. Come abbiamo visto anche al paragrafo 2.4.3, sono molteplici i fatto-
ri che possono influenzare le misurazioni, provocando una stima della posizione molto
imprecisa.
    Inoltre, durante la mia permanenza all’RFID-Lab, mi ` stato possibile assistere ad
                                                        e
alcune sperimentazioni da loro effettuate sul Location Engine della Texas Instrumen-
ts [Aam06], presente sui dispositivi con SoC (System-on-chip) CC2431: i risultati in-
door, sebbene considerando un alto numero di nodi beacon, non sono stati incoraggianti,
presentando alti errori di localizzazione.
    Per questi ed altri motivi, come si vedr` al capitolo 5, l’informazione estratta dal LQI
                                            a
non verr` utilizzata per realizzare un vero e proprio sistema di localizzazione, ma sar`
        a                                                                              a
sfruttata ampiamente per guidare l’esplorazione da parte di robot mobili in ambienti
semistrutturati.


4.3.4      Dati numerici rilevati

Le rilevazioni indoor sono state effettuate in due ambienti differenti: un’abitazione e il
1◦ piano del Dipartimento di Informatica e Sistemistica. La configurazione dei test `
                                                                                   e
descritta al paragrafo 4.3.


Abitazione

In figura 4.7 ` illustrata la pianta dell’abitazione dove sono state fatte le rilevazioni.
             e
Per interpretare correttamente i dati riportati in tabella 4.2, occorre considerare esclu-
sivamente le lettere, relative alle diverse locazioni dove il ricevitore ` stato posizionato,
                                                                         e
mentre l’icona del dispositivo rappresenta la posizione del trasmettitore (mantenuto fis-
so). Ogni valore LQI ` ottenuto effettuando una media su 100 pacchetti ricevuti nella
                     e
singola posizione, mantenendo i due dispositivi ad un’altezza dal suolo di 50 cm.
                                                         LQI in posizione
 Data
           a     b      c     d     e     f     g     h     i     l    m      n     o     p     q     r     s      t      u
17/12/07 77.39 66.62 46.62 69.83 115.83 91.8 54.31 65.77 69.94 26.52 83.62 30.83 72.04 77.14 66 82.65 108.44 125.44 107.59
20/12/07 69.04 100.16 47.66 59.12 95.39 70.97 92.12 48.41 72.25 40.08 70.62 16.22 68.83 81.93 82.16 51.22 145.27 157.58 156.41
22/12/07 63.78 98.75 44.12 65.50 112.98 85.72 88.96 49.66 70.07 33.62 76.79 30.25 69.46 78.19 84.25 69.03 148.93 148.38 155.67

                            Tabella 4.2: Misurazioni LQI in una abitazione



Dipartimento di Informatica e Sistemistica (1◦ Piano)

Anche in questo caso, le rilevazioni sono state effettuate nella stessa modalit` dell’a-
                                                                              a
bitazione, ma ` stato possibile eseguirle una singola volta. Per semplicit` i valori sono
              e                                                           a
riportati direttamente sulla pianta di figura 4.10, dove l’icona del dispositivo rappresenta
Capitolo 4. Analisi della qualit` del segnale in ambienti indoor/outdoor
                                a                                                     72


la posizione del trasmettitore (mantenuto fisso) e le lettere la posizione del ricevitore,
spostato ad ogni rilevazione. Ogni valore LQI ` ottenuto effettuando una media su 100
                                              e
pacchetti ricevuti nella singola posizione.




                Figura 4.10: Posizioni e valori delle rilevazioni LQI al DIS
Capitolo 5

Esplorazione guidata dalla qualit`
                                 a
del segnale

In questo capitolo viene descritta l’idea predominante di questo lavoro di tesi: le in-
formazioni sulla qualit` del segnale provenienti dai nodi ZigBee vengono utilizzate per
                       a
aiutare l’esplorazione di ambienti sconosciuti per mezzo di robot mobili. Dopo la fase
di studio dei metodi di localizzazione wireless-based (cap. 2) e l’analisi sulla qualit` del
                                                                                       a
segnale (cap. 4), l’obiettivo del lavoro ` evoluto, perdendo le sembianze di un vero e
                                         e
proprio sistema di localizzazione di supporto per robot.
   Dai risultati conseguiti nelle sperimentazioni, si evincono le complessit` a cui si va
                                                                            a
incontro nel realizzare un sistema di localizzazione basato sulla potenza del segnale
ricevuto1 . Le problematiche maggiori si incontrano soprattutto indoor, dato che tale
grandezza fisica non pu` essere facilmente relazionata alla distanza e ci` ostacola non
                      o                                                 o
poco l’applicazione di metodologie range-based. A dir la verit`, sistemi basati sul RSS
                                                              a
fingerprinting come Radar [BP00] o MoteTrack [LW04], hanno dimostrato una discreta
precisione, a discapito di tempi di setup onerosi e dipendenza diretta dall’ambiente
in cui vengono impiegati. Gli approcci range-free appaiono senz’altro validi, ma con
considerevoli limitazioni, dovute soprattutto alle topologie di rete e alla densit` di nodi
                                                                                  a
richieste, non applicabili nei nostri scenari di interesse.
   Inizialmente, questo lavoro di tesi, era partito con l’intento di elaborare e sperimen-
tare, un sistema di localizzazione che traesse giovamento dall’impiego di tecnologie per
WSN, risultando di notevole interesse nel campo della robotica mobile, ad esempio per
aiutare nella soluzione di problemi di localizzazione globale o, pi` in generale, di SLAM.
                                                                   u
A seguito delle sperimentazioni effettuate, l’interesse si ` spostato dalla localizzazione del
                                                          e
nodo ZigBee, alle strategie efficaci per raggiungerlo; questo, ovviamente, non perch´ il
                                                                                  e
primo problema sia meno interessante, ma perch´ potremmo considerare il secondo una
                                              e
   1
     Come abbiamo visto al paragrafo 4.1.4, nel caso dei dispositivi impiegati, possiamo parlare
indifferentemente di RSS o LQI, grazie alla relazione 4.1



                                              73
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                            74


sua versione “rilassata”. Nell’esplorazione di ambienti effettuata da robot mobili, questa
funzionalit` potrebbe essere pensata come un sensore aggiunto, che riesce ad indicare la
           a
vicinanza di un punto sulla mappa, sia esso stabilito volontariamente o meno.
   Quello a cui siamo davanti pu` essere pensato come un nuovo approccio all’esplora-
                                o
zione, che rispetto ad altri [SB03, BMF+ 00, MLLH06, TK03], prende le sue decisioni in
base alla qualit` del segnale ricevuto dal dispositivo ZigBee installato sul robot mobile;
                a
in questo caso, il problema della ricerca di un punto nell’ambiente, viene risolto mediante
un’esplorazione guidata e la scelta delle frontiere avviene con un contributo informati-
vo pi` rilevante rispetto ai casi in cui tali scelte vengono effettuate con una strategia
     u
greedy (ad esempio, considerando la frontiera pi` vicina [Yam98]). Con tali considera-
                                                u
zioni, la ricerca cieca, risolta mediante esplorazione, diviene quindi ricerca informata e
consente di ridurre notevolmente i tempi per il raggiungimento dell’obiettivo della mis-
sione. L’idea ` quella di riprodurre la situazione vista al paragrafo 4.3, mantenendo un
              e
nodo fisso che rappresenta l’obiettivo, in grado di trasmettere un pacchetto beacon, e
pi` nodi installati altrettanti su robot mobili, in grado di ricevere questi avvisi e sce-
  u
gliere deterministicamente, basandosi sul LQI ricevuto, quale nuova zona dell’ambiente
esplorare.
   Come vedremo successivamente, l’esplorazione ` basata anche in questo caso sul
                                                e
concetto di frontiere [Yam97], la cui selezione ad ogni step ` affidata ad un algoritmo
                                                             e
euristico. Ovviamente, considerando che le scelte pi` rilevanti fatte dall’algoritmo ven-
                                                    u
gono effettuate elaborando un dato poco stabile e rumoroso come il LQI, esso non sar`
                                                                                   a
infallibile in ogni condizione e necessiter` di strumenti di filtraggio adeguati per ridurre
                                           a
le incertezze sulle misurazioni.
   Questo tipo di metodologia di esplorazione, si presta abbastanza bene ad ambienti
indoor strutturati e semistrutturati, con possibili scenari di applicazione sono che de-
scritti nel seguito. L’algoritmo implementato ` stato sperimentato prima in un ambiente
                                              e
di simulazione e, successivamente, su un robot mobile reale. I risultati conseguiti sono
descritti al capitolo 7.
   In questo capitolo verr` illustrato in dettaglio il funzionamento generale dell’algorit-
                          a
mo, mentre al capitolo 6 ` lasciata la descrizione delle scelte progettuali e implementative.
                         e
La sua presentazione ` stata realizzata con lo scopo principale di dimostrare la validit`
                     e                                                                  a
dell’approccio; molte considerazioni possono essere fatte, al fine di migliorarlo e renderlo
pi` efficiente.
  u


5.1     Concetti preliminari
Nel seguito vengono introdotti alcuni concetti, necessari per comprenderne al meglio la
struttura dell’intero sistema realizzato.
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                            75


5.1.1    Sistema di riferimento

Considerando che in questa tesi sono stati prese in considerazione esplorazioni di spazi
bidimensionali, per specificare la posizione del robot ` stata utilizzata la convenzione
                                                      e
che prevede un riferimento globale per il piano (XI , YI ) e uno locale al robot (XR , YR ),
come riportato in figura 5.1. Una volta scelto il punto P , la generica posizione (posa)
sulla mappa sar` individuata dalla terna (x, y, θ).
               a

                         YI

                                       YR
                                                               XR


                                                       θ

                                            P




                                                                XI



                       Figura 5.1: Sistema di riferimento per il robot



5.1.2    Esplorazione mediante frontiere

Per un robot mobile che non ha conoscenza a priori dell’ambiente e deve quindi esplorarlo,
un approccio abbastanza noto in letteratura ` quello descritto in [Yam97], basato sul
                                            e
concetto di frontiera. Essa rappresenta la regione di che delimita lo spazio esplorato e
quello non esplorato; in figura 5.2 ` rappresentato, in bianco lo spazio esplorato, in nero
                                   e
gli ostacoli, in blu lo spazio inesplorato e i punti viola rappresentano il punto selezionato
come rappresentante della frontiera, dato che essa ` composta da tutti i punti bianchi
                                                   e
che confinano con il blu. A volte, a partire dai punti di frontiera, per calcolare il punto




                        Figura 5.2: Esplorazione basata su frontiere


che la rappresenta unicamente, viene utilizzato semplicemente il baricentro di tutti i suoi
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                           76


punti. Nel paragrafo 6.2.1 ` possibile consultare dettagli sull’implementazione software
                           e
concernente la ricerca di frontiere.
   In questo la rappresentazione spaziale dell’ambiente viene fatta su occupancy grid,
in cui, ad ogni rilevazione dei sensori del robot (sonar, laser, infrarossi) viene modificata
la probabilit` che in una determinata cella della mappa sia presente un ostacolo o meno.
             a
Per la ricerca delle frontiere nella mappa di solito vengono utilizzati strumenti della
computer vision, raggruppando tutte le celle facenti parti dello spazio esplorato (bianco)
e suddividendole in differenti regioni di frontiera, utilizzando tecniche di blob coloring
[BB82]. Ogni regione con un numero di punti maggiore di una determinata soglia `
                                                                               e
considerata un frontiera.
   Questo tipo di approccio, basato sulle frontiere, si presta bene ad ambienti indoor
e outdoor, in cui gli ostacoli possono trovarsi in posizioni arbitrarie, permettendo di
estendere gradualmente gli spazi di esplorazione.


5.1.3    Configurazione dell’agente

Nel seguito si assumer` di lavorare con un agente configurato per l’esplorazione auto-
                      a
noma, ovvero con componenti software e sensori in grado di permettere lo spostamento
del robot mobile da un punto libero della mappa ad un altro, in maniera indipendente
e senza intervento dell’operatore. Negli esperimenti effettuati, sia in simulazione che
nella realt`, sono presenti dei moduli dedicati al mapping, alla localizzazione, al motion
           a
control e alla navigazione, appartenenti alla piattaforma di sviluppo SPQR-RDK, intro-
dotta al paragrafo 1.6. Dal punto di vista dei sensori, oltre all’odometria, ` presente un
                                                                             e
laser scanner che permette di effettuare agevolmente esplorazione basata su frontiere.


5.2     Esplorazione guidata dal LQI - Descrizione dell’algo-
        ritmo
In questa parte della tesi, viene descritto in dettaglio il funzionamento dell’algoritmo
di esplorazione per robot mobili, basato sulla qualit` del segnale ricevuto da disposi-
                                                     a
tivi ZigBee. Per il momento la trattazione viene affrontata dal punto di vista teorico,
tralasciando alcuni aspetti implementativi che verranno illustrati al capitolo 6.
   Iniziamo col dire che l’assunzione principale che viene fatta dall’algoritmo, ` quella
                                                                                 e
di avere a disposizione dei nodi beacon presenti nell’ambiente da esplorare, in grado di
inviare dei messaggi a dei nodi subscribers che ne fanno richiesta. Nella fase preliminare,
il robot deve scegliere il beacon verso cui avvicinarsi. Considerando che in un dato istante
pi` dispositivi ZigBee possono trovarsi nel raggio di copertura, esso ne seleziona uno
  u
come quello obiettivo da raggiungere, basandosi su un determinato criterio (ad esempio
sceglie il nodo con LQI medio maggiore).
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                             77




                  Figura 5.3: Discretizzazione dell’ambiente e matrice LQI


   Un’astrazione importante che viene effettuata sull’ambiente esplorato, e che sar` la
                                                                                  a
base da cui partire per fornire una differente priorit` frontiere, ` la suddivisione della
                                                     a            e
mappa (ottenuta dagli algoritmi di mapping) in celle equidimensionate e di proporzioni
adeguate alla mappa stessa (fig. 5.3): tale suddivisione favorisce la discretizzazione
dell’ambiente ed ` rappresentata numericamente da una matrice Mlqi (eq. 5.1), in cui
                 e
ogni elemento indica il LQI della rispettiva cella sulla mappa (fig. 5.3). In base alla
frequenza con cui il nodo presente sul robot e il beacon si scambiano messaggi (da cui,
in ricezione, viene estratto ogni volta il LQI), pu` accadere che il primo si trovi ancora
                                                   o
all’interno della stessa cella e in quel caso sul valore LQI pu` essere effettuata una media
                                                               o
o un altro tipo di filtraggio.
                                                                             
                          156     N.D.   N.D.   N.D. N.D. N.D. · · ·   N.D.
                                                                           
                          N.D.
                                 163 175 N.D. N.D. N.D. · · ·         N.D.
                                  151 159 178 N.D. N.D. · · ·
                                                                           
                          N.D.                                        N.D.
                 Mlqi   =                                                             (5.1)
                          121
                                 144 N.D. 157 N.D. N.D. · · ·         N.D.
                          .       .    .   .    .    .   ..             . 
                          .       .    .   .    .    .      .           . 
                          .       .    .   .    .    .                  . 
                           N.D.   N.D.   N.D.   N.D. N.D. N.D. · · ·   N.D.

Come ` facile notare (eq. 5.1), una possibile istanza di Mlqi , contiene la storia di tutte le
     e
osservazioni del LQI, effettuate solo dove l’agente ` transitato (negli altri casi la matrice
                                                   e
riporta il valore N.D.); questa matrice sar` il dato principale con cui viene decisa la
                                           a
prossima frontiera verso cui muoversi.
   L’esplorazione guidata dal LQI procede ad ogni passo selezionando una nuova fron-
tiera, precisamente quella che presenta lo score pi` alto, in base all’euristica che verr`
                                                   u                                     a
illustrata nella sezione 5.2.1. Per ridurre la complessit` dell’algoritmo, durante lo spo-
                                                         a
stamento da una frontiera all’altra, non vengono eseguite ulteriori azioni se non quella
di continuare a raccogliere dati sul LQI, che vanno a popolare la matrice Mlqi . Come
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                                                          78


ausilio per l’esposizione, ci riferiremo nel seguito alla macchina a stati di figura 5.4, per
esaminare i differenti comportamenti dell’algoritmo nelle varie fasi di esplorazione.
   Il robot, una volta selezionato il beacon parte dallo stato STOPPED e, quando viene
attivato il modulo di navigazione, sceglie la prima frontiera di esplorazione in modo
casuale tra quelle trovate, non avendo dati sufficienti per agire diversamente; mentre si
dirige verso la frontiera selezionata, lo stato permane in GATHERING, ovvero la matrice
Mlqi viene aggiornata con i valori del LQI rilevati durante lo spostamento. Ogni volta
che viene raggiunto il punto frontiera, lo stato passa in CLEVER CHOICE, nel quale viene
scelta la prossima frontiera da esplorare, in base agli score riportati da tutte quelle
disponibili.
   Va notato che nel calcolo dello score di una frontiera, viene considerata anche la sua
distanza dal robot (a parit` di score, la frontiera pi` vicina incrementa il suo score); `
                           a                          u                                  e
ovvio che non ` possibile invocare il path planner per ogni frontiera, in quanto troppo
              e
oneroso computazionalmente, per cui nel calcolo dello score viene utilizzata una metrica
euclidea. Il controllo sulla lunghezza del path viene effettuato una volta selezionata
quella con score pi` alto, calcolando il path e controllando in che proporzioni sono
                   u
distanza del path e distanza euclidea. Se il path ` troppo lungo, tale frontiera viene
                                                  e
scartata e si passa alla seconda con score pi` alto, e cosi via (fig. 5.7).
                                             u

                   (Navigator enabled &                                        Random frontier
                     Beacon choosen)                    RANDOM                    choosen
                                                        CHOICE


                                                     Frontiers
                                                                  Best frontier choosen
                                                      scores
                                                     too close
                      STOPPED                                                              GATHERING

                                                             CLEVER            Navigator
                                 No more frontiers
                                                             CHOICE              done                currentLQI >
         Navigator disabled                                                                      deepScanLqiThreshold
                                                                       Navigator
                                                                         done
                               NEAR                                                        DEEP
                              TARGET                                                       SCAN
                                                      Too long computed path
                                                             (planner)

                                             currentLQI > nearTargetLqiThreshold




                   Figura 5.4: Macchina a stati dell’algoritmo di esplorazione


   Il ciclo di stati GATHERING-CLEVER CHOICE si ripete, finch´ il LQI ricevuto dal robot
                                                            e
non supera una determinata soglia (deepScanLqiThreshold), selezionata a priori; lo
stato dell’algoritmo a questo punto transita in DEEP SCAN, una modalit` in cui viene
                                                                      a
utilizzata una seconda mappa, in ausilio a quella classica costruita con le scansioni
del range finder dai moduli di mapping. Essa ` sostanzialmente un clone della mappa
                                            e
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                                 79


originale, in cui viene simulata una scansione con raggio di apertura molto minore2 , che
consente di muoversi a step pi` brevi (fig. 5.5). Questa operazione ` necessaria, dato che
                              u                                    e
una volta che il laser scanner nella sua scansione non trova pi` frontiere, l’esplorazione
                                                               u
continua sulle altre, non considerando il fatto che il nodo beacon da raggiungere potrebbe
trovarsi proprio nell’area della scansione appena effettuata. Ovviamente, per semplificare
il riconoscimento di quest’ultimo quando si ` nelle vicinanze, possono essere utilizzate
                                            e
tecniche ausiliarie, come la visione artificiale [BB82].




                        Figura 5.5: La mappa in modalit` DEEP SCAN
                                                       a


      Dallo stato DEEP SCAN, si esce quando il LQI supera una seconda soglia, che rap-
presenta una situazione in cui trasmettitore e ricevitore sono ad una distanza di circa 2
metri. In questo caso lo stato diventa NEAR TARGET e il robot si ferma immediatamente
nella posizione in cui si trova, indicando che nodo beacon ` nelle immediate vicinanze.
                                                           e


5.2.1      Calcolo degli score delle frontiere

Il punteggio (score) di una frontiera, rappresenta l’indicatore di preferenza principale,
mediante il quale, ad ogni passo dell’esplorazione, viene stabilito l’ordinamento delle
frontiere. L’attribuzione dello score, come vedremo, si basa principalmente sulla matrice
Mlqi e sulla divisione della mappa in celle. Le coordinate di un punto (x, y) sul piano
della mappa (XI , YI ) (par. 5.1.1), quando necessario, vengono convertite nella relativa
cella e quindi in indici sulla matrice Mlqi , come ad esempio accade per la posa del robot
e i punti rappresentanti delle frontiere.
      L’esempio esplicativo al quale ci riferiremo per la spiegazione ` illustrato in figura
                                                                      e
5.8, in una condizione in cui ` necessario scegliere tra due possibili frontiere. La griglia
                              e
rappresenta Mlqi , con i valori di LQI rilevati nelle differenti celle. Come vediamo, anche
il robot e le frontiere sono posizionate su celle.
  2
    Ad esempio, nei nostri esperimenti, il laser scanner Hokuyo ha un raggio di 4 metri, mentre la
scansione ridotta viene effettuata con raggio pari a 1 metro
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                            80


     L’algoritmo per il calcolo degli score (Algoritmo 1) viene invocato ogni qualvolta sia
necessario selezionare una frontiera di esplorazione, tra quelle disponibili al momento.
In input viene fornito l’insieme delle frontiere F e la matrice Mlqi , mentre in output
` restituito l’insieme delle frontiere ordinato per score. Quando parleremo di distanza
e
nella spiegazione, ci riferiremo sempre alla distanza euclidea, calcolata sulle matrici e
quindi relativa alle celle. Ad esempio per due generici elementi α = (i, j) e β = (k, l)
essa vale:
                                   dist(α, β) =         (i − k)2 + (j − l)2 .

     Input: F : l’insieme delle frontiere - Mlqi : la matrice che contiene i valori LQI
     Output: Ford : l’insieme delle frontiere ordinato per score
 1   foreach Frontiera Fi ∈ F do
 2       Fdisti ← Calcola la distanza (euclidea) del robot dalla frontiera i;
 3       Mdisti ← Calcola matrice delle distanze per la frontiera i;
 4   end
 5   maxDist ← Calcola la massima distanza possibile tra elementi di Mlqi ;
 6   foreach Matrice Mdisti ∈ Mdist do
 7       S1 ← 0;
 8       S2 ← 0;
 9       minDisti ← Calcola la distanza minima in Mdisti ;
10       foreach mdist(j,k) ∈ Mdisti do
11           if minDisti ≤ mdist(j,k) ≤ minDisti + ∆(minDisti ) then
12              S1 ← S1 + Mlqi (j, k) · (maxDist − mdist(j,k) );
13              S2 ← S2 + mdist(j,k) ;
14           end
15       end
                     S1          1
16       Scorei ←    S2   +   minDisti   −   Fdisti ;
17   end
18   Score ← Ordina gli score in modo decrescente;
19   Ford ← Ordina le frontiere in base allo score riportato;
20   return Ford ;
                   Algoritmo 1: Algoritmo per il calcolo degli score

     Di seguito l’algoritmo viene spiegato in dettaglio, motivando le scelte computazio-
nali effettuate. Molte di esse sono ricavate empiricamente, sulla base delle numerevoli
sperimentazioni eseguite in simulazione. Per comprendere al meglio i calcoli effettuati,
si consulti l’esempio numerico presente al paragrafo 5.2.1.1.
     L’esecuzione dell’algoritmo per il calcolo degli score (Algoritmo 1) procede come
segue:
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                                              81


  1. Per ogni frontiera Fi ∈ F :

        • Viene calcolata la sua distanza dal robot e inserita nel vettore Fdist , in
          posizione i.
        • Viene calcolata la sua matrice di distanze Mdisti , ovvero la distanza della
          frontiera da ogni elemento di Mlqi diverso da N.D., e inserita nel vettore di
          matrici Mdist , in posizione i.

  2. Calcolo della massima distanza possibile sulla matrice Mlqi . Se ad esempio essa ha
                                    √
     dimensioni 20 × 20, maxDist = 800. Tale valore sar` necessario successivamente
                                                           a
     per effettuare la media pesata (linea 12).

  3. Per ogni matrice Mdisti ∈ Mdist :

        • S1 e S2 , che conterranno delle somme parziali, vengono inizializzati a 0.
        • Tra le distanze presenti in Mdisti , viene calcolata quella minima e inserita nel
          vettore minDist in posizione i.
        • Per ogni elemento mdist(j,k) ∈ Mdisti :
            – Se il valore di mdist(j,k) ` compreso tra minDisti e minDisti +∆(minDisti ),
                                         e
               allora vengono eseguite le due somme parziali S1 e S2 , che serviranno per
               effettuare la media pesata dei valori del LQI con la distanza. Questo signi-
               fica che solo alcuni valori di Mdisti (quelli che appunto si trovano a distan-
               za compresa tra minDisti e minDisti + ∆(minDisti )) vengono conside-
               rati. Ad esempio, in figura 5.8 sono rappresentati con diversi colori i valori
               di Mlqi considerati, a seconda della frontiera. La media pesata dei valori
                                                                           j   Mlqi (j,k)·(maxDist−dist(j,k) )
               LQI per ogni frontiera sar` del tipo: LQIi =
                                         a                                                                     ,
                                                                                  j (maxDist−dist(j,k) )
               dove S1 =          j   Mlqi (j, k) · (maxDist − dist(j,k) ) e S2 =             j (maxDist     −
               dist(j,k) ). Questo tipo di media fornisce un peso pi` alto ai valori del
                                                                    u
               LQI pi` vicini alla frontiera, rappresentando il fatto che essi risultano
                     u
               maggiormente rappresentativi rispetto a quelli pi` distanti.
                                                                u
               ∆(minDist) ` una funzione ricavata empiricamente e dipende dalla mi-
                          e
               nima distanza della frontiera i da un elemento valido di Mlqi (ovvero
               minDisti ). Essa modella il fatto che a differenti distanze minime, l’in-
               sieme dei valori che rappresentano la frontiera (considerati quindi per il
               calcolo di LQIi ) varia: ad esempio a piccole distanze i valori scelti sono in
               quantit` minori che a distanze grandi. La funzione utilizzata ` graficata
                      a                                                      e
               in figura 5.6.
            – Lo Scorei , relativo alla frontiera Fi , viene ricavato mediante la formu-
                     S1          1                                 S1
               la:   S2   +   minDisti   −   Fdisti . Il termine   S2   rappresenta il risultato della
                                                             1
               media pesata, mentre il termine            minDisti      fornisce uno score pi` basso
                                                                                             u
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                                82

                                   1.3

                                   1.2




                      ∆(minDist)
                                   1.1

                                    1

                                   0.9

                                   0.8

                                   0.7

                                   0.6

                                   0.5

                                   0.4
                                         1        2         3             4           5   6
                                                                minDist




                                             Figura 5.6: Grafico della funzione ∆


                  alle frontiere con minDisti pi` alto, indicando il fatto che frontiere ec-
                                                u
                  cessivamente distanti dai valori di Mlqi possono essere rappresentate in
                  modo non veritiero. Stessa valutazione viene fatta per il termine ne-
                  gativo − Fdisti , in quanto le frontiere pi` distanti dal robot vedono
                                                             u
                  maggiormente decrementato il loro score (` pi` costoso raggiungerle).
                                                           e u
                  Dato che in questa fase stiamo considerando solo la distanza euclidea,
                  occorre evidenziare che, solo in fase di scelta definitiva della frontiera
                  (nella macchina a stati illustrata in figura 5.4), verranno risolte situazioni
                  come quelle di figura 5.7.

                                                                              Robot
                                                                              Frontiera
                                                                              Path




                                                        Fdist



    Figura 5.7: In questo caso la Fdist ` piccola, mentre la lunghezza del path per rag-
                                          e
    giungerla ` abbastanza grande. In questo la frontiera potrebbe essere scartata, per
               e
        lasciare il posto ad una eventualmente pi` vicina e con score di poco inferiore.
                                                 u


   4. Infine, le frontiere vengono ordinate in modo decrescente, in base agli score ripor-
      tati.

5.2.1.1       Un esempio di esecuzione

Ritornando all’esempio di figura 5.8, procediamo all’esecuzione dell’algoritmo per le due
frontiere per verificare quale delle abbia score pi` alto dell’altra. I calcoli forniscono i
                                                  u
seguenti risultati:
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                                       83

                                                                               Robot
       156                                                                     Frontiera
                                                                               Celle relative a F1
                 163 175                   minDist1        F1                  Celle relative a F2
                                                                               Obiettivo
                 151 159 178
                                                  Fdist1

       121 144                         162
            minDist2
                                   Fdist
                                       2

                         F2

                            Figura 5.8: Calcolo degli score per le frontiere

                 √       √
   • Fdist = [       8       8 ]
                                                          
                     5.01     N.D. N.D. N.D. N.D. N.D. N.D.
                                                          
              N.D.
                               4    3  N.D. N.D. N.D. N.D.
                                                           
                                                          
              N.D.           4.12 3.16 2.23 N.D. N.D. N.D.
   • Mdist1 =                                             
               5.38          4.47 N.D. 2.82 N.D. N.D. N.D.
                                                          
                                                          
              N.D.           N.D. N.D. N.D. N.D. N.D. N.D.
                                                          
               N.D.           N.D. N.D. N.D. N.D. N.D. N.D.
                                                          
                5.01          N.D. N.D. N.D. N.D. N.D. N.D.
                                                          
              N.D.
                               4  4.12 N.D. N.D. N.D. N.D.
                                                           
                                                          
              N.D.             3  3.16 3.60 N.D. N.D. N.D.
     Mdist2 =                                             
               2.23            2  N.D. 2.82 N.D. N.D. N.D.
                                                          
                                                          
              N.D.           N.D. N.D. N.D. N.D. N.D. N.D.
                                                          
               N.D.           N.D. N.D. N.D. N.D. N.D. N.D.
                  √
   • minDist1 = 5 = 2.23 e minDist2 = 2

   • ∆(minDist1 ) = 0.95 e ∆(minDist2 ) = 1

   • F1 : 2.23 ≤ mdist(j,k) ∈ Mdist1 ≤ 3.18

        – Mdist(2,3) = 3 ⇒ Mlqi(2,3) = 175
        – Mdist(3,3) = 3.16 ⇒ Mlqi(3,3) = 159
        – Mdist(3,4) = 2.23 ⇒ Mlqi(3,4) = 178
        – Mdist(4,4) = 2.82 ⇒ Mlqi(4,4) = 162
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                          84


   • F2 : 2 ≤ mdist(j,k) ∈ Mdist2 ≤ 3

        – Mdist(4,2) = 2 ⇒ Mlqi(4,2) = 144
        – Mdist(3,2) = 3 ⇒ Mlqi(3,2) = 141
        – Mdist(4,1) = 2.23 ⇒ Mlqi(4,1) = 122

   • maxDist =       (1 − 6)2 + (1 − 7)2 = 9.21

               175·6.21+159·6.05+178·6.97+162·6.38
   • LQI 1 =           6.21+6.05+6.97+6.38               = 168.8
                           1
                                     √
      Score1 = 168.8 +    2.23   −        2.82 = 167.36

               144·7.21+151·6.21+121·6.97
   • LQI 2 =         7.21+6.21+6.97            = 138.26
                             1
                                     √
      Score2 = 138.26 +      2   −       2.82 = 137.08

La frontiera con lo score maggiore risulta essere F1 , che verr` pertanto selezionata come
                                                               a
target dal sottosistema di navigazione del robot. Rimane valido in ogni caso il ragio-
namento descritto al paragrafo precedente, che tiene in considerazione la lunghezza del
percorso calcolato dal path planner verso il punto rappresentante della frontiera.
   Un aspetto rilevante dell’algoritmo, ` la capacit` di uscire facilmente dai massimi
                                        e           a
locali, situazioni che possono facilmente presentarsi in approcci di tipo a gradiente o a
campi di potenziale. L’accumularsi delle letture durante lo spostamento verso le fron-
tiere, aggiorna la conoscenza che il robot ha della mappa, permettendogli di scartare
ad ogni passo le zone che in precedenza apparivano come le migliori, ma che una volta
raggiunte riportano un basso valore LQI.


5.3     Possibili scenari
In questa sezione vengono descritti alcuni degli scenari in cui l’approccio presentato pu`
                                                                                         o
dimostrare la sua utilit`.
                        a


5.3.1    Rendezvous

Il problema del rendezvous [DR97, ZLV07] consiste nell’incontro, da parte di due o pi`
                                                                                     u
agenti, in un punto e ad un orario ben determinato. Nei sistemi multi-robot avere questo
` un bisogno inerente. La possibilit` di incontrarsi facilita innanzitutto la localizzazio-
e                                   a
ne e facilita il coordinamento nell’esplorazione di grandi ambienti, riducendo il tempo
necessario al completamento.
   Nel nostro caso, i punti selezionati per il rendezvous (chiamati anche landmark ),
possono essere pensati come dei nodi ZigBee lasciati nell’ambiente o installati sui robot.
Dato che ogni robot possiede un ricevitore, utilizzando le informazioni sul LQI e un’op-
portuna euristica ` possibile raggiungere il landmark, a patto ovviamente che esso non
                  e
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                          85


sia in condizioni di mobilit`. Considerata l’autonomia energetica e soprattutto il costo
                            a
contenuto di questi dispositivi, questa situazione ` facilmente realizzabile.
                                                   e
   Va aggiunto che in scenari di rendezvous esistono due problemi a priori, ovvero come
scegliere il landmark e quale landmark selezionare dall’insieme di quelli potenzialmente
disponibili, temi che vanno oltre gli scopi di questa tesi.


5.3.2    Rescue robots

Nel campo della robotica di soccorso e, in particolare, in ambito Search and Rescue
[HSI+ 99, CFIN07, MNG06, NA07], ` facile immaginare come informazioni sulla loca-
                                e
lizzazione di punti di interesse (ostacoli, feriti, punti di raccolta, altri robot) possano
divenire di estrema importanza per accelerare i tempi di esplorazione di aree devastate,
con la conseguenza di aumentare la probabilit` di salvare anche vite umane. Si compren-
                                             a
de inoltre quanto ci` sia di interesse primario in ambienti indoor (uffici, abitazioni), o
                    o
dove comunque non c’` la possibilit` di utilizzare altri sistemi di posizionamento (come
                    e              a
ad esempio GPS).
   Considerate le possibilit` di miniaturizzazione che possono essere raggiunte nella
                            a
produzione di dispositivi ZigBee, possiamo pensare ad uno scenario in cui ogni per-
sona indossi un ricevitore e che, nel caso di incidenti o devastazioni 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 possono
avvenire incendi, cedimenti strutturali o emissioni di sostanze tossiche.
   Nelle squadre multi-robot, l’algoritmo di esplorazione guidata pu` aiutare un robot
                                                                    o
a trovare un altro membro della squadra in difficolt`, perch´ esso fornisce funzionalit`
                                                  a       e                          a
particolari che l’altro non possiede (ad esempio, un robot “demolitore”, potrebbe riuscire
a liberare un passaggio bloccato da eventuali ostruzioni).


5.3.3    Deployment di reti ad-hoc

Sempre per quanto riguarda scenari di soccorso robotico, un’idea interessante ` quella
                                                                              e
di sfruttare l’approccio presentato per gestire efficientemente il deployment di una rete
di comunicazione wireless ad-hoc, in situazioni di emergenza [RB05]. In molti casi, la
presenza di una infrastruttura di rete, consente il controllo e monitoraggio da parte
dell’operatore esterno, permettendo inoltre di mantenere le comunicazioni tra le squadre
di robot distanti [HMS02].
   Il problema che si presenta, ` quello di massimizzare la copertura della rete, mi-
                                e
nimizzando il numero di nodi necessari. Apportando alcune modifiche all’algoritmo
presentato, ` possibile far trovare autonomamente al robot le zone in cui la qualit` del
            e                                                                      a
segnale ` pi` bassa, considerando ovviamente una mappa del LQI per ogni dispositi-
        e u
vo e ragionando sull’intersezione delle stesse. In questo modo ` come ci trovassimo in
                                                               e
Capitolo 5. Esplorazione guidata dalla qualit` del segnale
                                             a                                          86


una logica invertita rispetto al problema originale, cercando di scegliere le frontiere che
minimizzano il LQI.


5.3.4   Sorveglianza

In scenari di sorveglianza mediante robot mobili [HBB+ 00], l’impiego dell’algoritmo
di esplorazione pu` fornire vantaggi per il monitoraggio di oggetti che frequentemente
                  o
vengono cambiati di posizione. Si pensi ad esempio a delle telecamere mobili, in grado
di rilevare condizioni di allarme e che sono equipaggiate con un dispositivo ZigBee; il
robot pu` raggiungere pi` efficientemente il luogo in cui si ` verificato l’evento, senza
        o               u                                  e
conoscenza a priori sulla posizione della telecamera, che pu` quindi essere spostata a
                                                            o
seconda delle necessit`, senza il bisogno ogni volta, di registrare su una mappa questi
                      a
cambiamenti.
Capitolo 6

Sperimentazione

In questo capitolo vengono presentate le problematiche relative all’implementazione del-
l’algoritmo di esplorazione descritto al capitolo 5 e i risultati ottenuti in sperimentazione,
in ambiente reale e simulato.
   La fase di implementazione ha previsto lo sviluppo di due applicazioni distinte, una
riservata ai dispositivi ZigBee, successivamente integrata con l’applicazione in esecuzione
a bordo del robot. In questo caso, la realizzazione delle nuove componenti ` stata eseguita
                                                                           e
integrando moduli gi` esistenti, facenti parte del framework per robot mobili SPQR-RDK
                    a
(par. 1.6). Dopo una descrizione dell’applicazione ZigBee realizzata, vengono illustrati
i nuovi moduli implementati e gli aspetti fondamentali dell’ambiente di simulazione
impiegato durante la sperimentazione dell’algoritmo.
   La parte conclusiva del capitolo ` riservata alla descrizione delle sperimentazioni
                                    e
effettuate, sia in ambiente simulato (utilizzando la piattaforma Player/Stage) che in
ambiente reale, utilizzando il robot mobile “Rotolotto”, presente al laboratorio SIED.
Dai risultati ottenuti in questa fase, saranno estratte le conclusioni, a cui ` dedicato il
                                                                              e
capitolo successivo.


6.1     Applicazione per i dispositivi ZigBee
L’applicazione sviluppata per essere eseguita sui dispositivi ZigBee, prevede l’utilizzo di
almeno due dispositivi, di cui un coordinatore (ZC) e uno o pi` router (ZR). Il coordina-
                                                              u
tore ` installato sul robot mobile ed ` collegato mediante interfaccia seriale all’elaboratore
     e                                e
che esegue il software di navigazione. Esso, oltre a possedere le funzionalit` descritte al
                                                                             a
paragrafo 3.4.3.1, ` stato programmato per trovare i dispositivi ZigBee nel suo raggio di
                   e
copertura (vicinato) ed effettuare richieste ai nodi beacon (ZR).
   I ZR, a loro volta, rispondono alle richieste del coordinatore, inviando periodicamente
un messaggio di beacon. Da questi messaggi, in ricezione, ` possibile estrarre il valore
                                                          e
del LQI che mediante un apposito formato dati viene scritto sulla porta seriale USB e
letto dall’applicazione di interfaccia, in esecuzione sul robot.
                                             87
Capitolo 6. Sperimentazione                                                                           88


      Da un punto di vista implementativo, l’applicazione residente sui nodi prevede due
cluster (par. 3.4.4), uno per la richiesta (BeaconRequest) e uno per la risposta (BeaconResponse);
` proprio dai messaggi BeaconResponse ricevuti che viene estratto il valore del LQI,
e
necessario per il funzionamento dell’algoritmo.
      L’avvio dell’applicazione avviene mediante i tasti funzione presenti sul dispositivo
(fig. 4.1), ad esempio per la richiesta del vicinato (NeighborhoodRequest) o di beacon.
Per semplificare l’interazione, il dispositivo che risulta avere LQI pi` alto tra i vicini
                                                                      u
viene scelto automaticamente come nodo obiettivo dall’algoritmo di esplorazione, che
pertanto ricever` esclusivamente da tale nodo i messaggi di beacon durante l’esecuzione.
                a




                                       LQ
                                                    ZigBee Coordinator                ZigBee Router
                                          I:   81              2. BeaconRequest
                                                              3. BeaconResponse

                                                             1. NeighborhoodRequest




                         Figura 6.1: Configurazione dell’applicazione ZigBee




6.2        Applicazione per SPQR-RDK
Dopo la fase di sperimentazione con i dispositivi ZigBee e di ideazione dell’algoritmo
di esplorazione, una parte significativa del lavoro di tesi ha visto l’implementazione
software del sistema sotto forma di moduli per la piattaforma SPQR-RDK. Tutto il
software realizzato ` presente nel repository del laboratorio SIED e scaricabile mediante
                    e
il tool Subversion1 .
      Il diagramma delle classi di figura 6.2 fornisce una visione d’insieme del sistema
realizzato; i sottosistemi di localizzazione, mapping, planning e navigazione erano gi`
                                                                                      a
preesistenti e funzionanti. Anche il modulo per la ricerca delle frontiere (par. 5.1.2) era
parzialmente implementato ed ` stato modificato per aggiungere nuove funzionalit`. I
                             e                                                 a
moduli realizzati interamente sono ZigbeeExplorator e ZigbeeInterface; nel primo
` stata codificata tutta la logica dell’algoritmo per la scelta delle frontiere, mentre nel
e
secondo ` stata implementata l’interfaccia di comunicazione con il dispositivo ZigBee.
        e
  1
      http://subversion.tigris.org/.
Capitolo 6. Sperimentazione                                                                             89



          FrontierFinder                  Navigator                   Mapping




     ZigbeeExplorator                                                                    Path Planner
         Module

                      ZigbeeExplorator                    ZigbeeInterface
                                                              Module

                                               Frontier                     ZigbeeInterface
                                           -score
                                           -distance
                                                                       +readLqiValue()


           LqiGatherer
        -lqiMatrix                FrontierChooser              StaticLqiMap              ZigbeeDriver
        +updateLqiValue()                                  -lqiMap
                              +computeFrontiersRank()      +readLqiValue()          +readLqiValue()




                            Figura 6.2: Diagramma delle classi del sistema


   Il diagramma delle classi, sebbene incompleto di alcuni dettagli, aiuta a comprendere
bene le dipendenze tra i moduli e le loro responsabilit` nell’intero sistema. Nei para-
                                                       a
grafi successivi essi verranno descritti dettagliatamente, prestando attenzione ad alcuni
dettagli implementativi e alle problematiche che gradualmente si sono presentate.


6.2.1      Modulo FrontierFinder

La ricerca delle frontiere ` una operazione fondamentale durante l’esplorazione in am-
                           e
bienti sconosciuti, in quanto gradualmente fornisce nuovi punti della mappa da visitare.
Esse sono rilevate trovando le regioni di confine tra la parte di mappa inesplorata e quella
esplorata; quelle con un numero sufficiente di punti vengono considerate frontiere.
   Nel nostro caso, il modulo di ricerca delle frontiere era gi` presente, anche se par-
                                                               a
zialmente implementato. Esso era in grado di fornire, per ogni frontiera, l’insieme dei
punti che la costituiva; dal punto di vista della navigazione per`, ` utile trovare anche
                                                                 o e
un rappresentante di questi punti, in modo che sia possibile fornirlo come target al ro-
bot. Un approccio comune [Yam97] ` quello di calcolare il centroide (o baricentro) dei
                                 e
punti, dato che, considerata la natura convessa delle regioni di frontiera, tale punto per
definizione ricade all’interno della parte di mappa esplorata.
   Questo ragionamento, anche se corretto, porta in alcune situazioni particolari a tro-
vare i rappresentanti troppo vicini agli ostacoli. Per questo motivo, ` stata sfruttata una
                                                                      e
informazione fornita dal modulo di mapping, la cosiddetta distance map; sostanzialmen-
te essa ` una mappa in cui ogni punto indica la distanza dall’ostacolo pi` vicino (fig.
        e                                                                u
6.3(a)). In questo modo, il rappresentante della frontiera, pu` essere trovato calcolando
                                                              o
Capitolo 6. Sperimentazione                                                                     90




              (a) La distance map                                    (b) Le frontiere trovate



                  Figura 6.3: Le frontiere trovate con l’ausilio della distance map


un centroide pesato con la distanza dagli ostacoli e fornendo quindi pi` rilevanza ai punti
                                                                       u
lontani dagli ostacoli. Ad esempio, per trovare F = (Fx , Fy ) si ottiene:

                                    j (px j )   · dxj              j (py j )   · dy j
                           Fx =                         ,   Fy =                        .
                                        j   dxj                        j   dy j

In figura 6.3(b), con differenti colori sono marcate le regioni di frontiera, mentre i punti
viola sono i rappresentanti trovati utilizzando il centroide e la distance map.


6.2.2    Modulo ZigbeeInterface

L’intero approccio descritto in questa tesi si basa sulla possibilit` di ottenere, in ogni
                                                                    a
momento, il valore del Link Quality Indicator sui pacchetti in ricezione. Durante l’im-
plementazione, per ottenere questo dato, si sono verificati principalmente due problemi;
in fase di simulazione era necessario emulare il comportamento del nodo ZigBee e di
conseguenza la variazione di LQI al cambiamento di posa dell’agente rispetto al nodo
beacon, mentre in fase di test sul robot reale era necessario interfacciarsi fisicamente con
il dispositivo.
    La soluzione al primo problema ` abbastanza intuitiva, ma ha consentito di non
                                   e
rendere troppo complessa la sperimentazione dell’algoritmo di esplorazione. Esistono
numerosi software commerciali in grado di simulare abbastanza fedelmente campi elet-
tromagnetici, anche in ambienti indoor, ma un tale livello di complessit` non era tuttavia
                                                                        a
richiesto. L’idea ` stata quella di effettuare misurazioni accurate del LQI, “campionan-
                  e
do” opportunamente l’ambiente secondo la configurazione descritta al paragrafo 4.3.1 e,
successivamente, mediante una interpolazione bidimensionale generare la mappa statica
del LQI utilizzata per la simulazione (fig. 6.4(b)), dove le zone pi` “calde” indicano un
                                                                   u
valore LQI pi` alto rispetto alle zone “fredde”. Tale mappa viene sovrapposta idealmen-
             u
te a quella dell’ambiente da esplorare, permettendo di avere in ogni punto il valore del
Capitolo 6. Sperimentazione                                                                         91


LQI in ricezione. Inoltre, considerando i risultati di figura 4.6, ` possibile introdurre
                                                                  e
una funzione di rumore gaussiano additiva che faccia variare leggermente i valori della
mappa statica, per rendere pi` realistiche le letture del valore LQI2 .
                             u




              (a) Posizioni per le misurazioni         (b) Mappa del LQI generata con interpo-
                                                       lazione bicubica


                       Figura 6.4: Generazione della mappa statica per il LQI


       L’interfacciamento fisico al dispositivo ` stato tutt’altro che elementare, in quanto i
                                               e
driver esistenti erano solo per piattaforma Windows. Ci` ha richiesto la modifica e la
                                                       o
compilazione di un driver per Linux di un altro produttore, adattandolo al dispositivo a
nostra disposizione. Una volta completata questa operazione, ` stato possibile estrarre
                                                             e
il valore del LQI scrivendo un piccolo parser per le stringhe ricevute sulla porta seriale.
       In condizioni dinamiche inoltre, come ` possibile osservare in figura 4.9, l’andamento
                                             e
del LQI presenta degli outlier che devono essere filtrati. Per completare tutto ci` in
                                                                                 o
tempo reale occorre una computazione efficiente come una media o un filtro di Kalman
[Kal60]. Per i nostri scopi ` stato sufficiente eseguire una media mobile del tipo:
                            e

                                 LQI t = α · LQIt + (1 − α) · LQI t−1 ,

dove α ∈ R e 0 ≤ α ≤ 1. Tale parametro determina quanto pesa il valore LQI appena
letto rispetto alla media ottenuta al passo precedente. Negli esperimenti effettuati,
ponendo α = 0.85, si ottiene un sufficiente smoothing sui valori rilevati, senza necessit`
                                                                                       a
di implementare altri filtri pi` complessi.
                              u
       Come ` possibile osservare in figura 6.2, il modulo ` stato progettato per essere
            e                                             e
trasparente rispetto al metodo utilizzato per leggere il LQI, che sia proveniente dalla
mappa statica o dal dispositivo reale. Il metodo readLqiValue che viene eseguito a
run-time ` specificato nel file di configurazione, mediante una variabile booleana.
         e
   2
   In questo modo, se il robot transita pi` volte nella stessa posizione della mappa, ottiene valori di
                                          u
LQI differenti.
Capitolo 6. Sperimentazione                                                               92


6.2.3    Modulo ZigbeeExplorator

In questo modulo ` racchiusa tutta la logica dell’algoritmo, descritta al paragrafo 5.2. In
                 e
particolare, nella classe principale ZigbeeExplorator ` stata implementata la macchina
                                                      e
a stati di figura 5.4; il suo scopo principale ` coordinare l’esecuzione del FrontierChoo-
                                              e
ser, per l’assegnazione dello score alle frontiere (rappresentate dalla classe Frontier), e
del modulo di navigazione, al fine di raggiungere di volta in volta il target selezionato. Il
modulo ` impostato per essere schedulato ogni 500 ms, che risulta anche l’intervallo con
       e
cui l’oggetto LqiGatherer ha la responsabilit` di registrare i dati del LQI, provenienti
                                             a
dalla ZigbeeInterface.


6.2.4    Moduli di navigazione

I moduli per la navigazione autonoma in ambiente sconosciuto erano gi` implementati e
                                                                     a
funzionanti. L’approccio scelto ` una navigazione a due livelli, in cui viene impiegato un
                                e
path planner globale (basato sull’algoritmo A∗ ) e un controllore di basso livello (motion
planner ) che suddivide il path in sottobiettivi di rapida attuazione, in cui il robot deve
seguire la traiettoria evitando eventuali ostacoli. In questo modo il movimento del robot
` funzione sia delle percezioni sensoriali che della posizione relativa dall’obiettivo.
e


6.2.5    Moduli di localizzazione e mapping

Per eseguire efficientemente i task di navigazione, sono di primaria importanza i moduli
di localizzazione e mapping, che si occupano di stimare consistentemente la posizione
del robot e la mappa dell’ambiente esplorato, a partire dalle rilevazioni dei sensori (scan
matching [MLM05]). In questo modulo viene costruita anche la distance map, che viene
utilizzata per pesare opportunamente il centroide della frontiera (par. 6.2.1).


6.3     Simulazione
Nello sviluppo e sperimentazione dell’algoritmo, ha avuto importanza rilevante impiegare
un adeguato ambiente di simulazione, nel quale ` stato possibile verificare velocemente
                                               e
le prestazioni su diversi ambienti, senza utilizzare necessariamente il robot reale.
   La piattaforma impiegata ` stata esclusivamente Player/Stage, in quanto era suffi-
                            e
ciente una rappresentazione bidimensionale dell’ambiente da esplorare. La configurazio-
ne del robot impiegato ` molto simile a quella reale; ` stato utilizzato un modello del
                       e                              e
Pioneer P2-AT, con laser scanner Sick. Per emulare la lettura istantanea del valore del
LQI dal dispositivo, la mappa generata con interpolazione ` stata sovrapposta idealmen-
                                                          e
te a quella del simulatore, facendo in modo che le coordinate del pixel sulla mappa LQI
coincidano con la posizione del robot rispetto alla mappa dell’ambiente, come ` possibile
                                                                              e
Capitolo 6. Sperimentazione                                                              93


osservare in figura 6.5. In questo modo ` possibile simulare facilmente diversi ambienti,
                                       e
con differenti distribuzioni del segnale.




                         LQI Value: 79
                           Cell (4,3)




                  Figura 6.5: Simulazione dell’algoritmo in Player/Stage




6.4     Esperimenti
Una volta terminata la fase di progettazione e implementazione dell’algoritmo di esplo-
razione, una parte del lavoro ha visto la sua sperimentazione sia in simulazione che in
ambiente reale. Essi tendono a mostrare la validit` dell’approccio scelto, sottolineando i
                                                  a
vantaggi introdotti. In entrambi i casi sono considerati ambienti indoor, semistrutturati
ed esplorabili per mezzo di robot mobili su ruote dotati di laser scanner.
   Va sottolineato il fatto che, i risultati ottenuti, non sono stati confrontati diretta-
mente con gli altri approcci esistenti, in quanto poco significativi, considerando che la
loro strategia di scelta delle frontiere ` quasi esclusivamente greedy e non considera altre
                                         e
sorgenti di informazione, come invece accade con l’algoritmo implementato.


6.4.1    Esperimenti in simulazione

La configurazione utilizzata in simulazione ` quella descritta al paragrafo 6.3, conside-
                                           e
rando ogni volta planimetrie e mappe LQI differenti. In ogni simulazione, nell’ambiente
Stage, sono presenti due robot; uno rappresenta l’obiettivo da raggiungere (che conserva
quindi la stessa posizione per tutta l’esecuzione) e su cui ` installato il nodo che invia i
                                                            e
messaggi beacon, mentre l’altro ` quello che esegue l’algoritmo di esplorazione guidata,
                                e
basato sulla qualit` del segnale ricevuto dal suo dispositivo.
                   a
Capitolo 6. Sperimentazione                                                               94


   Nelle figure che seguono sono presentati gli esiti dei differenti esperimenti, realizzati
in altrettanti ambienti. In rosso ` rappresentato il robot mobile su cui ` in esecuzione
                                  e                                      e
l’algoritmo di esplorazione, mentre in blu ` indicato, anch’esso come un robot, l’obiettivo
                                           e
da raggiungere. Come ` facile notare, osservando i tracciati di esplorazione nelle figure
                     e
6.6, 6.7 e 6.8, le scelte effettuate dall’algoritmo forniscono un contributo determinante per
la ricerca del nodo obiettivo. L’euristica basata sul LQI aiuta a ridurre lo spazio di scelta
delle frontiere, eliminando quelle in cui l’andamento del segnale non ` significativamente
                                                                      e
alto, permettendo un’esplorazione pi` rapida ed efficace dell’ambiente. In generale, il
                                    u
comportamento del robot, ` quello di tentare ad entrare nelle stanze e appena riscontra
                         e
un abbassamento eccessivo della qualit` del segnale, prosegue per il corridoio.
                                      a
   Considerando che i calcoli sono effettuati basandosi sulla qualit` del segnale e che
                                                                   a
tale grandezza in ambienti indoor ` abbastanza variabile, possono verificarsi casi come
                                  e
quello di figura 6.8(b) in cui il robot crede di aver trovato il nodo obiettivo, anche se
esso si trova dietro un ostacolo. Ovviamente, in tali situazioni, possono contribuire al
corretto criterio di arresto dell’algoritmo altre metodologie di ricerca, che fanno uso di
sensori alternativi, come ad esempio la visione artificiale.




                   Figura 6.6: Esecuzione dell’algoritmo in un’abitazione



6.4.2    Esperimenti in ambiente reale

La prova conclusiva dei risultati ottenuti, ha visto la sperimentazione dell’algoritmo rea-
lizzato su un sistema reale, in particolare utilizzando il robot Rotolotto (par 1.2.1) in
un ambiente indoor, precisamente dove sono situati i laboratori RoCoCo e ALCOR,
nel seminterrato del Dipartimento di Informatica e Sistemistica. Come in simulazione,
sono presenti due dispositivi ZigBee, uno sul robot e l’altro che individua l’obiettivo
dell’esplorazione. Nell’esperimento descritto, essa inizia dalla stanza contrassegnata dal
pallino rosso (fig. 6.9) e procede secondo il percorso illustrato, fino alla corretta indivi-
duazione dell’obiettivo (indicato con un quadrato azzurro). In figura 6.10 sono riportate
Capitolo 6. Sperimentazione                                                              95




               Figura 6.7: Esecuzione dell’algoritmo nel primo piano del DIS




                 (a) Esecuzione 1                             (b) Esecuzione 2



              Figura 6.8: Esecuzione dell’algoritmo nello scenario del labirinto


le foto scattate all’avvio e alla terminazione dell’esplorazione. Si comprende quindi che,
i risultati ottenuti in simulazione, possono essere ricavati anche in situazione reale, sen-
za notevoli limitazioni. L’unico problema riscontrato in alcuni casi ` stato la portata
                                                                     e
trasmissiva limitata dei dispositivi in alcuni tratti, dovuto comunque alla configurazione
della struttura (ad esempio, a causa dello spessore elevato dei muri).
   Come nella simulazione, il percorso seguito dal robot mostra efficacemente le scelte
effettuate dall’algoritmo di selezione delle frontiere, prima di raggiungere l’obiettivo. A
titolo di confronto, il tempo impiegato per l’esplorazione ` di 8 30 , rispetto ai 3 27
                                                           e
necessari essendo virtualmente a conoscenza della posizione dell’obiettivo, ma non della
mappa ovviamente.
Capitolo 6. Sperimentazione                                                                   96




                                                                        Percorso effettuato
                                                                        Punto di partenza
                                                                        Robot
                                                                        Obiettivo
                                                                        Frontiere




                      Figura 6.9: La mappa generata nell’esplorazione




         (a) Situazione di partenza                        (b) Situazione di arrivo



              Figura 6.10: Sperimentazione dell’algoritmo in ambiente reale
Parte III

Risultati e conclusioni




           97
Capitolo 7

Conclusioni e sviluppi futuri

7.1     Sintesi dei risultati ottenuti
In questo lavoro di tesi ` stato progettato, implementato e sperimentato un algoritmo
                         e
per l’esplorazione di ambienti semistrutturati da parte di robot mobili autonomi, basato
sulla potenza del segnale ricevuto da dispositivi ZigBee. La sua realizzazione ha richiesto
la trattazione di numerose problematiche; in primo luogo la scelta dei dispositivi da
utilizzare e lo studio dello standard ZigBee per le reti LR-WPAN, in particolar modo
gli strati MAC, rete e applicazione. Successivamente, contemporaneamente allo studio
dello stato dell’arte nei metodi di localizzazione wireless, sono state effettuate una serie
di sperimentazioni in ambienti indoor e outdoor, al fine di valutare le caratteristiche
trasmissive dei dispositivi selezionati per il progetto. I risultati di questi test, hanno
sicuramente aiutato ad osservare il problema originale sotto un differente punto di vista,
consentendo di sfruttare le informazioni ricavate sulla potenza del segnale ricevuta, non
pi` per realizzare un sistema di localizzazione wireless, ma bens` per ricavare indicazioni
  u                                                              ı
utili durante l’esplorazione di ambienti sconosciuti da parte di robot mobili.
   L’algoritmo pensato si presenta come un’euristica basata sul LQI (Link Quality In-
dicator), un dato che rappresenta adeguatamente la qualit` del collegamento tra due
                                                         a
dispositivi ZigBee, dove il trasmettitore individua il punto di interesse da segnalare e
il ricevitore ` installato sul robot, in grado di ricevere tali segnalazioni. Come in altri
              e
approcci [Yam98, BMF+ 00, KPN, MTK, SB03], l’esplorazione viene eseguita visitando
ad ogni passo visitando le frontiere disponibili; a differenza di essi per`, la selezione della
                                                                         o
frontiera migliore, ad ogni passo, ` guidata dalle informazioni raccolte sulla variazione
                                   e
del LQI, che spesso forniscono una buona stima del vantaggio ricavabile dalla scelta.
Una tale funzionalit` pu` risultare di notevole interesse, ad esempio, nella soluzione di
                    a o
problemi di rendezvous tra robot [DR97] o per rendere pi` efficiente la ricerca in ambito
                                                        u
Search and Rescue [BCC+ 04].




                                             98
Capitolo 7. Conclusioni e sviluppi futuri                                               99


   Il sistema ` stato implementato in C++, sotto forma di moduli per il framework
              e
SPQR-RDK, permettendo di sperimentare velocemente le prestazioni dell’algoritmo, sia
in ambiente simulato che in condizioni reali. I test effettuati hanno dimostrato la validit`
                                                                                          a
dell’approccio, mostrando i benefici che si ottengono nella maggior parte dei casi ana-
lizzati. L’informazione derivante dalla qualit` del segnale ricevuto pu` essere pertanto
                                              a                        o
sfruttata positivamente, risultando un buon criterio per la scelta di frontiere, migliore
sicuramente della scelta casuale o greedy (ad esempio, scegliendo la frontiera pi` vicina
                                                                                 u
[YSA98]).
   Da un punto di vista personale, posso sicuramente essere soddisfatto dei risultati
ottenuti e delle capacit` acquisite durante tutto il periodo di sviluppo della tesi. Le
                        a
tematiche affrontate sono risultate di notevole interesse, con la possibilit`, inoltre, di
                                                                           a
sperimentare i propri studi su un robot reale, oltre che in simulazione.


7.2     Sviluppi futuri ed estensioni
Il sistema presentato pone le fondamenta per la soluzione di un problema base: il rag-
giungimento da parte del robot di un punto nell’ambiente, in cui ` presente un dispositivo
                                                                 e
che invia dei messaggi di tipo beacon. Tale scenario pu` essere certamente esteso, im-
                                                       o
maginando situazioni nel quale diversi robot esplorano l’ambiente e sono equipaggiati
con nodi ZigBee; le funzionalit` dell’algoritmo possono essere sfruttate per effettuare dei
                               a
rendezvous o coordinare l’esplorazione al fine di aumentare l’area ricoperta nell’intervallo
di tempo disponibile. I dispositivi possono essere rilasciati dinamicamente da un robot
esploratore che magari ` pi` veloce, indicando il percorso da seguire agli altri membri
                       e u
della squadra perch´ pi` lenti o zone da evitare perch´ gi` esplorate (in questo caso la
                   e u                                e a
logica dell’algoritmo andrebbe ovviamente invertita, in modo da fornire le zone con LQI
pi` basso).
  u
   Possono essere aggiunte inoltre, informazioni sulla topologia dell’ambiente mediante
una semantica ad alto livello, al fine di accelerare la ricerca dei punti di interesse; ad
esempio, se si intuisce di trovarsi in un corridoio, conviene prima effettuare un’esplo-
razione preliminare dello stesso al fine di stimare con maggiore accuratezza le possibili
stanze dove l’obiettivo pu` trovarsi.
                          o
   Altri miglioramenti possono essere introdotti, tenendo conto della variazione del LQI
(praticamente il gradiente del LQI) durante lo spostamento tra una frontiera e l’altra,
ad esempio aumentando lo score per quelle che si trovano nel verso di incremento del
LQI o annullando il raggiungimento di una frontiera se l’andamento ` eccessivamente
                                                                   e
decrescente, gi` durante la fase di navigazione verso di essa.
               a
Parte IV

Appendici




    100
Appendice A

Piattaforma Freescale MC13213

Sono di seguito riportati i dati tecnici principali del SiP MC13213 di Freescale, montato
sui dispositivi 13213-SRB e 13213-NCB, utilizzati nello sviluppo della tesi.
   Modalit` di trasferimento
           a                                                 Pacchetto e stream
      Frequenza e canali                                  2.4 GHz ISM, 16 canali
          Throughput                        250 Kbps con modulazione O-QPSK e spreading DSSS
   Modalit` di funzionamento
          a                       4-RF (Off, Hibernate, Doze, Idle) e 4-MCU (Wait, STOP1, STOP2, STOP3)
           Sensitivit`
                     a                                             -92 dBm
   Tensione di funzionamento                                        2-3.4 V
             MCU                                           HCS08 CPU a 40 MHz
         Memoria Flash                                   60 KB Flash, 4 KB RAM
         Input/Output                        39 GPIO, ADC 10 bit e 8 canali, 4 timer, 2 SCI, IIC
       Potenza in uscita                                   da -27 dBm a +4 dBm
 Temperatura di funzionamento                                 da -40◦ C a +85◦ C
            Package                              9x9x1 mm, 64 pin LGA (RoHS comnpliant)

         Tabella A.1: Dati tecnici della piattaforma ZigBee MC13213 di Freescale


   In figura A.1 ` possibile osservare lo schema a blocchi della piattaforma.
                e


                                                      Analog                                                                      Background
                                                     Receiver                                                  HCS08 CPU
                                                                                                                                 Debug Module
                                                                                             RFIC Timers
                                                                       Digital Transceiver




                                                                                                                                  8 Channel
                                                                                                               Flash Memory
                                Transmit/                                                                                         10 Bit ADC
                                                     Frequency
         Balun                  Receive
                                                     Generator
                                 Switch                                                      Digital Control
                                                                                                Logic
                                                                                                                  RAM                2x SCI

                                                   Analog
                                                 Transmitter                                                    Dedicated              2
                                                                                                                                      IC
                             CT_Bias                                                             SPI              SPI

             Bypass                              Bu er RAM
                                                                                                               Low Voltage
                                                                                                                                  16 Bit Timers
                                                                                                                Interrupt
                                                                                               7 GPIO
                                       IRQ Arbiter              RAM Arbiter
                                                                                                                Keyboard
                                                                                                                                     COP
                                                                                                                Interrupt

                                         Power                   Voltage
                                       Management               Regulators                                     Internal Clock       Up to 32
                                                                                                                 Generator          GPIOs


                                                                   802.15.4 Modem                                               HCS08 MCU



                 Figura A.1: Schema a blocchi della piattaforma MC13213

                                                          101
Appendice A. Piattaforma Freescale MC13213                                                                        102


   In figura A.2 ` riportato il grafico che mostra la relazione tra la potenza del segnale
                e
ricevuta e quella riportata; si pu` notare la non-linearit` tra i -45 e i -40 dBm che causa
                                  o                       a
i fenomeni descritti al paragrafo 4.2.

                                      -15

                                      -25
         Reported Power Level (dBm)




                                      -35

                                      -45

                                      -55

                                      -65                                              802.15.4 Accuracy
                                                                                       and Range Requirements
                                      -75

                                      -85
                                            -85     -75      -65        -55      -45         -35    -25     -15
                                                                   Input Power Level (dBm)

                                                  Figura A.2: Grafico potenza ricevuta/riportata
Bibliografia

  [Aam06] K. Aamodt. Texas Instruments CC2431 Location Engine - Application
            Note AN042. Texas Instruments, 2006. http://focus.ti.com/lit/an/
            swra095/swra095.pdf.

    [BB82] Dana H. Ballard and Christopher M. Brown. Computer Vision. Prentice
            Hall, 1982.

 [BCC+ 04] S. Bahadori, D. Calisi, A. Censi, A. Farinelli, G. Grisetti, L. Iocchi, and
            D. Nardi. Intelligent Systems for Search and Rescue. In Proceedings of
            Intelligent Robots and Systems Workshop Urban search and rescue: from
            Robocup to real world applications, 2004.

[BEFW97] J. Borenstein, H. Everett, L. Feng, and D. Wehe. Mobile Robot Positio-
            ning: Sensors and Techniques. Journal of Robotic Systems, 14(4):231–249,
            1997.

[BFDW03] F. Bourgault, T. Furukawa, and H.F. Durrant-Whyte. Coordinated De-
            centralized Search for a Lost Target in a Bayesian World. In Proceedings
            of IEEE/RSJ International Conference on Intelligent Robots and Systems,
            2003.

[BGGT07] Jan Blumenthal, Ralf Grossmann, Frank Golatowski, and Dirk Timmer-
            mann. Weighted Centroid Localization in Zigbee-based Sensor Networks.
            In IEEE International Symposium on Intelligent Signal Processing, 2007.

  [BHE00] N. Bulusu, J. Heidemann, and D. Estrin. GPS-less Low Cost Outdoor
            Localization For Very Small Devices.        IEEE Personal Communication
            Magazine, 7(5):28–34, 2000.

[BMF+ 00] W. Burgard, M. Moors, D. Fox, R. Simmons, and S. Thrun. Collabo-
            rative Multi-Robot Exploration. In Proceedings of IEEE International
            Conference on Robotics and Automation, 2000.

    [BP00] Paramvir Bahl and Venkata N. Padmanabhan. RADAR: An In-Building
            RF-based User Location and Tracking System. In IEEE INFOCOM, 2000.
                                          103
Bibliografia                                                                         104


[CDNDW01] S. Clark, G. Dissanayake, P. Newman, and H.F. Durrant-Whyte. A So-
              lution to Simultaneous Localization and Map Building (SLAM) Problem.
              IEEE Journal of Robotics and Automaton, 17(3), 2001.

   [CFIN07] Daniele Calisi, Alessandro Farinelli, Luca Iocchi, and Daniele Nardi. Multi-
              objective Exploration and Search for Autonomous Rescue Robots. J. Field
              Robot., 24(8-9):763–777, 2007.

     [Cro07] CrossBow Technology.       Avoiding RF Interference Between WiFi and
              ZigBee, 2007.    http://www.xbow.com/Products/Product_pdf_files/
              Wireless_pdf/ZigBeeandWiFiInterference.pdf.

     [Doy95] Alexander Benjamin Doyle. Algorithms and Computational Techniques for
              Robot Path Planning. PhD thesis, School of Electronic Engineering and
              Computer Systems, University of Wales, Bangor, 1995.

     [DR97] Gregory Dudek and Nicholas Roy. Multi-Robot Rendezvous in Unkno-
              wn Environments. In Proceedings of AAAI International Conference on
              Artificial Intelligence, 1997.

  [DWB06a] H.F. Durant-White and T. Bailey. Simultaneous Localization and Map-
              ping: Part I. IEEE Robotics and Automation Magazine, pages 99–108,
              June 2006.

  [DWB06b] H.F. Durant-White and T. Bailey. Simultaneous Localization and Map-
              ping: Part II. IEEE Robotics and Automation Magazine, pages 108–117,
              Semptember 2006.

     [Erg04] Sinem Coleri Ergen. ZigBee/IEEE 802.15.4 Summary. Technical report,
              Berkeley, September 2004.

     [Eve95] H. R. Everett. Sensors for Mobile Robots. A. K. Peters, 1995.

    [FBT99] D. Fox, W. Burgard, and S. Thrun. Markov Localization for Mobile Robots
              in Dynamic Environments. Journal of Artificial Intelligence Research, 11,
              1999.

    [FGI05] A. Farinelli, G. Grisetti, and L. Iocchi. SPQR-RDK: a Modular Framework
              for Programming Mobile Robots. In Proceedings of International RoboCup
              Symposium 2004, pages 653–660, 2005.

    [GBL01] H.H. Gonz´les-Banos and J.C. Latombe. Navigation Strategies for Ex-
                     a
              ploring Indoor Environments. International Journal of Robotics Research,
              2001.
Bibliografia                                                                      105


  [GVS+ 01] B.P. Gerkey, R.T. Vaughan, K. Støy, A. Howard, M.J. Matari´, and G.S.
                                                                      e
              Sukhatme. Most Valuable Player: A Robot Device Server for Distribu-
              ted Control. In IEEE/RSJ Intl. Conf. on Intelligent Robots an Systems
              (IROS), pages 1226–1231, October 2001.

  [HBB+ 00] D. Hougen, S. Benjaafar, J. Bonney, J. Budenske, M. Dvorak, M. Gini,
              H. French, D. Krantz, P. Li, F. Malver, B. Nelson, N. Papanikolopou-
              los, P. Rybski, S. Stoeter, R. Voyles, and K. Yesin. A Miniature Robo-
              tic System for Reconnaissance and Surveillance. In Proceedings of IEEE
              International Conference on Robotics and Automation, pages 501–507,
              2000.

  [HHB+ 03] T. He, C. Huang, B. Blum, J. Stankovic, and T. Abdelzaher. Range-free
              Localization Schemes in Large Scale Sensor Networks, 2003.

    [HLD07] J.B. Hayet, F. Lerasle, and M. Devy. A Visual Landmark Framework for
              Mobile Robot Navigation. Image and Vision Computing, 25(8):1341–1351,
              August 2007.

   [HMS02] Andrew Howard, Maja J. Mataric, and Gaurav S. Sukhatme. An In-
              cremental Self- Deployment Algorithm for Mobile Sensor Networks. In
              Autonomous Robots, special issue on Intelligent Embedded Systems, 2002.

   [HSI+ 99] Kitano H., Tadokoro S., Noda I., Matsubara H., Takahashi T., Shinjou
              A., and Shimada S. RoboCup Rescue: Search and Rescue in Large-scale
              Disasters as a Domain for Autonomous Agents Research. In Proceedings of
              IEEE International Conference on Systems, Man and Cybernetics, 1999.

     [IEE06] IEEE Standards 802 Part 15.4. Wireless Medium Access Control (MAC)
              and Physical Layer (PHY) Specifications for Low-rate Wireless Perso-
              nal Area Networks (WPANs), June 2006. http://standards.ieee.org/
              getieee802/download/802.15.4-2003.pdf.

      [IR01] ITU-R. Propagation Data and Prediction Methods for the Planning of
              Indoor Radio Communication Systems and the Radio Local Area Networks
              in the Frequency Range 900 MHz to 100 GHz, 2001.

     [Kal60] R.E. Kalman.     A New Approach to Linear Filtering and Prediction
              Problems. Journal of Basic Engineering, 1960.

      [KPN] Alexander Kleiner, Johann Prediger, and Bernhard Nebel.            RFID
              Technology-based Exploration and SLAM for Search and Rescue.
Bibliografia                                                                       106


     [Lan03] Daniel Lang. A Comprehensive Overview About Selected Ad Hoc Net-
              working Routing Protocols. http://home.leo.org/~dl/TUM-I0311.pdf,
              2003.

     [LW04] Konrad Lorincz and Matt Welsh. A Robust, Decentralized Approach
              to RF-Based Location Tracking. Technical Report TR-04-04, Harvard
              University, 2004.

    [Mat92] Maja Mataric. Integration of Representation into Goal-driven Behavior-
              based Robots. In IEEE Transactions on Robotics and Automation, 1992.

    [MFA07] Guoqiang Mao, Barı¸ Fidan, and Brian D. O. Anderson. Wireless Sensor
                              s
              Network Localization Techniques. Computer Networks, 51(10):2529–2553,
              2007.

  [MLLH06] Yongguo Mei, Yung-Hsiang Lu, C.S.G. Lee, and Y.C. Hu. Energy-efficient
              Mobile Robot Exploration. In Proceedings of the International Conference
              on Robotics and Automation, pages 505–511, 2006.

   [MLM05] J. Minguez, F. Lamiraux, and L. Montesano. Metric-based Scan Matching
              Algorithms for Mobile Robot Displacement Estimation. In Proceedings of
              the IEEE International Conference on Robotics and Automation, 2005.

   [MNG06] Y. Meng, J.V. Nickerson, and J. Gan. Multi-Robot Cooperation Strate-
              gies in a Searching Task with Limited Communication. In Proceedings of
              Robotic and Applications, 2006.

     [MTK] Apurva Mudgal, Craig Tovey, and Sven Koenig. Analysis of Greedy Robot-
              Navigation Methods.

     [NA07] Rooker Martijn N. and Birk Andreas. Multi-robot Exploration under
              the Constraints of Wireless Networking. Control Engineering Practice,
              15(4):435–445, 2007.

     [NN01] D. Niculescu and B. Nath.         Ad Hoc Positioning System (APS).      In
              Proceedings of GLOBECOM, November 2001.

     [NN03] D. Niculescu and B. Nath. Ad Hoc Positioning System (APS) using AOA.
              In IEEE INFOCOM, 2003.

     [Pat05] Neal Patwari. Location Estimation in Sensors Networks. PhD thesis,
              University of Michigan, 2005.

     [PD03] Larry L. Peterson and Bruce S. Davie. Computer Networks: A System
              Approach. Morgan Kaufman, 2003.
Bibliografia                                                                         107


     [Per03] C. Perkins. Ad hoc On-Demand Distance Vector (AODV) Routing, July
              2003. http://www.ietf.org/rfc/rfc3561.txt.

  [PHP+ 03] N. Patwari, A. O. Hero, M. Perkins, N. S. Correal, and R. J. ODea. Lo-
              cation Estimation in Wireless Sensor Networks. In IEEE Transactions on
              Signal Processing, volume 51, August 2003.

    [Rap01] Theodore Rappaport. Wireless Communications: Principles and Practice.
              Prentice Hall PTR, Upper Saddle River, NJ, USA, 2001.

     [RB05] Martijn N. Rooker and Andreas Birk. Combining Exploration and Ad-Hoc
              Networking in RoboCup Rescue. In Nardi Daniele, Riedmiller Martin,
              and Sammut Claude, editors, RoboCup 2004: Robot Soccer World Cup
              VIII, volume 3276 of Lecture Notes in Artificial Intelligence (LNAI), pages
              236–246. Springer, 2005.

  [SACO06] Rajeev Shorey, Kkihebbal L. Ananda, Mun Choon Chan, and Wei Tsang
              Ooi. Mobile, Wireless, and Sensor Networks - Technology, Applications,
              and Future Directions. John Wiley & Sons, 2006.

     [Sau00] Simon R. Saunders.           Antennas and Propagation for Wireless
              Communications Systems. John Wiley and Sons, 2000.

    [SAY99] Alan C. Schultz, William Adams, and Brian Yamauchi.             Integrating
              Exploration, Localization, Navigation and Planning with a Common
              Representation. Autonomous Robots, 6(3):293–308, 1999.

      [SB03] C. Stachniss and W. Burgard. Exploring Unknown Environments with
              Mobile Robots using Coverage Maps. In Proceedings of the International
              Conference on Artificial Intelligence, 2003.

    [Sem06] Freescale Semiconductors.      Compact Integrated Antennas Designs and
              Applications for the MC1319x, MC1320x, and MC1321x, 2006. http:
              //www.freescale.com.

   [Sem07a] Freescale Semiconductors. MC13211/212/213 ZigBee Compliant Platform
              - 2.4 GHz Low Power Transceiver for the IEEE 802.15.4 Standard plus
              Microcontroller, 2007. http://www.freescale.com.

   [Sem07b] Freescale Semiconductors. MC1321x Evaluation Kit (EVK) - Reference
              Manual, 2007. http://www.freescale.com.

     [Sey00] John S. Seybold. Introduction to RF propagation. John Wiley and Sons,
              2000.
Bibliografia                                                                        108


    [SHS01] A. Savvides, C. Han, and M. Srivastava. Dynamic Fine-grained Localiza-
              tion in Ad-Hoc Networks of Sensors. In Proceedings of ACM MobiCom,
              pages 166–179, July 2001.

  [SKOM06] Masashi Sugano, Tomonori Kawazoe, Yoshikazu Ohta, and Masayuki Mu-
              rata. Indoor Localization System Using RSSI Measurement of Wireless
              Sensor Network Based on ZigBee Standard, 2006.

      [SN04] Roland Siegwart and Illah R. Nourbakhsh. Introduction to Autonomous
              Mobile Robots. MIT Press, 2004.

   [SRZF07] Y. Shang, W. Ruml, Y. Zhang, and M. P. J. Fromherz. Localization from
              Mere Connectivity. In Fourth ACM International Symposium on Mobile
              Ad-Hoc Networking and Computing, June 2007.

    [TBF05] S. Thrun, W. Burgard, and D. Fox. Probabilistic Robotics. MIT Press,
              2005.

    [TFB98] S. Thrun, D. Fox, and W. Burgard. A Probabilistic Approach to Con-
              current Mapping and Localization for Mobile Robots. Machine Learning,
              31:29–53, 1998.

  [TFBD00] S. Thrun, D. Fox, W. Burgard, and F. Dellaert. Robust Monte Carlo
              Localization for Mobile Robots. Artificial Intelligence, 128(1-2):99–141,
              2000.

     [Thr95] S. Thrun. Exploration in Active Learning, 1995.

     [TK93] C.J. Tailor and D.J. Kriegman. Exloration Strategies for Mobile Robo-
              ts. In Proceedings of the IEEE International Conference on Robotics and
              Automation, pages 248–253, 1993.

     [TK03] C. Tovey and S. Koenig. Improved Analysis of Greedy Mapping. In Procee-
              dings of IEEE International Conference on Intelligent Robots and Systems,
              pages 3251–3257, 2003.

  [TKT+ 00] Satoshi Tadokoro, Hiroaki Kitano, Tomoichi, Takahashi, Itsuki Noda, Hi-
              toshi Matsubara, Atsuhi Shinjoh, Tetsuya Koto, Ikuo Takeuchi, Hironao
              Takahashi, Fumitoshi Matsuno, Mitsuo Hatayama, Jun Nobe, and Su-
              sumu Shimada. The RoboCup-Rescue Project: A Robotic Approach to
              the Disaster Mitigation Problem. In Proceedings of IEEE International
              Conference on Robotics and Automation, 2000.
Bibliografia                                                                      109


   [WLG03] J. Wang, M. Lewis, and J. Gennari. Interactive Simulation of the NIST
              USAR Arenas. In IEEE International Conference on Systems, Man, and
              Cybernetics, pages 1350–1354, 2003.

   [XKC97] Yun Xiaoping and Tan Ko-Cheng. A Wall-following Method for Escaping
              Local Minima in Potential Field Based Motion Planning. In Proceedings
              of 8th International Conference on Advanced Robotics, 1997.

    [Yam97] Brian Yamauchi. A Frontier-Based Approach for Autonomous Explora-
              tion. In Proceedings of the IEEE International Conference on Robotics
              and Automation, 1997.

    [Yam98] Brian Yamauchi. Frontier-based exploration using multiple robots. In
              AGENTS ’98: Proceedings of the second international conference on
              Autonomous agents, pages 47–53, New York, NY, USA, 1998. ACM.

    [YSA98] Brian Yamauchi, Alan Schultz, and Williams Adams. Mobile Robot Ex-
              ploration and Map-Building with Continuous Localization. In Procee-
              dings of the International Conference on Robotics and Automation, pages
              3715–3720, 1998.

     [Zig06] ZigBee Alliance. ZigBee-2006 Specification, December 2006. http://www.
              zigbee.org/en/spec_download/zigbee_downloads.asp.

  [ZKNN07] V.A. Ziparo, A. Kleiner, B. Nebel, and D. Nardi. RFID-Based Explora-
              tion for Large Robot Teams. In Proceedings of the IEEE International
              Conference on Robotics and Automation, pages 4606–4613, 2007.

    [ZLV07] P. Zebrowski, Y. Litus, and R.T. Vaughan. Energy Efficient Robot Ren-
              dezvous. In Fourth Canadian Conference on Computer and Robot Vision,
              2007.
A
Questa tesi ` stata scritta interamente utilizzando il software L TEX2e
            e

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 twiceas 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` dicreare 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 fondamentalie stato dell’arte 7
  • 22.
    Capitolo 1 Robot perl’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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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. Robotper 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.
  • 39.
    Capitolo 1. Robotper l’esplorazione autonoma 25 opportuna notazione sul file di configurazione. Tale accesso attraverso i collegamenti risulta totalmente trasparente al programmatore, che vede la propriet` collegata come a locale al suo modulo. 1.6.3 Concorrenza Lavorando in un ambiente multi-thread bisogna prestare particolare attenzione a pro- blemi di sincronizzazione e concorrenza tra i differenti moduli. A run-time ogni modulo (thread) pu` trovarsi in attesa di molteplici eventi, come lo sblocco di un semaforo o o di un mutex, la scadenza di un timer o l’aggiornamento di una propriet`. Inoltre, ` a e possibile prevedere differenti tipi di accesso condiviso, tramite l’oggetto session, che ha la responsabilit` di governare il corretto utilizzo del repository; ` possibile impostare a e il locking e unlocking automatico o manuale di propriet`, a seconda delle esigenze del a programmatore. 1.6.4 Comunicazioni tra agenti Allo stesso modo in cui avviene lo scambio dati tra diversi moduli, anche la condivi- sione di informazioni tra diversi agenti avviene mediante il repository. Essa pu` essere o realizzata mediante condivisione di propriet` o invio e la ricezione di messaggi. a Nel primo caso, un agente (subscriber) interessato ai dati di un altro (publisher): egli indica il proprio interesse sempre mediante un collegamento alla propriet`, specificando a nell’URL anche il nome dell’agente. Il subscriber pu` ricevere notifiche periodicamente o o in seguito ad un aggiornamento della propriet`. a L’invio e la ricezione di messaggi viene supportato da appositi oggetti mailbox, con cui ` possibile scambiarsi informazioni in modo asincrono. e 1.6.5 Strumenti di supporto RConsole RConsole ` una potente interfaccia grafica che permette di avere sotto controllo lo stato e dei moduli in esecuzione, visualizzando mediante appositi widget i valori dei parametri, immagini, mappe e video prelevato da videocamere. Alcuni speciali controlli, permettono di fornire in tempo reale comandi al robot, come ausilio a task eseguiti in teleoperazione. Logging e reporting In un framework di tale complessit`, non possono mancare strumenti avanzati di logging a e di reporting, utilizzati ad esempio per esportare dati provenienti da sensori e utilizzabili in altri software di elaborazione.
  • 40.
    Capitolo 1. Robotper l’esplorazione autonoma 26 Interfacce con i simulatori Alcuni moduli dell’SPQR-RDK permettono di interfacciarsi con i pi` comuni simulatori u per la robotica mobile, come USARsim e la piattaforma Player/Stage/Gazebo (par. 1.5.1). Tutto avviene sempre in maniera trasparente, impostando i diversi parametri dal file di configurazione e mantenendo la stessa interfaccia di accesso, in modo che altri moduli possono continure ad interagire senza particolari modifiche nel codice.
  • 41.
    Capitolo 2 Localizzazione basatasu dispositivi wireless La localizzazione di un dispositivo all’interno di WSN ` un aspetto sempre pi` rilevante e u [MFA07], in quanto consente di associare alla misurazione il luogo in cui si ` verificata. e Ovviamente la precisione con cui la posizione viene rilevata dipende dallo specifico con- testo applicativo: ad esempio per localizzare persone all’interno di un ufficio ` sufficiente e sapere in quale stanza si trovano, mentre in uno scenario di monitoraggio di merci in un magazzino si potrebbe essere interessati in quale particolare imballaggio ` stata superata e una soglia di temperatura critica. L’informazione sulla posizione ` importante anche in e fasi di amministrazione e configurazione, considerato l’elevato numero di nodi che la rete pu` contenere1 . o I differenti metodi di localizzazione si differenziano oltre per la precisione che riesco- no a raggiungere, anche per la complessit` richiesta per implementarli. Alcuni di questi a fanno delle assunzioni sulla struttura dell’ambiente (indoor/outdoor), sulla configurazio- ne della rete (ad esempio a griglia) o sulla presenza di nodi con posizione nota a priori (detti beacon). Si pu` facilmente immaginare come, l’aggiunta di informazioni sulla localizzazione o utilizzando una WSN, possa essere agevolmente integrata su una squadra di robot mobili, fornendo indicazioni sulla posizione che possono risultare utili sia in fase di creazione di una mappa globale, sia per coordinare l’esplorazione dell’ambiente da parte della squadra. In questo modo, ogni robot, pu` avere una visione globale del problema, o riuscendo ad evitare azioni che non creano vantaggio per il raggiungimento dell’obiettivo, come ad esempio visitare una zona gi` esplorata. a Lo scopo principale di questo capitolo, ` quello di mostrare lo stato dell’arte nei e metodi di localizzazione wireless, in particolar modo utilizzando segnali radio. Lo studio 1 In casi particolari, una WSN, pu` essere composta da diverse migliaia di nodi o 27
  • 42.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 28 effettuato, ha permesso inoltre di comprendere in dettaglio i problemi e i fenomeni fisici da tenere in considerazione nella realizzazione di un sistema di localizzazione. Localizzazione wireless La localizzazione wireless ` implementata principalmente utilizzando le tre seguenti e tecnologie: Infrarossi L’infrarosso ` una radiazione elettromagnetica con una lunghezza d’onda e maggiore della luce visibile, ma minore delle onde radio. Molti oggetti come persone, motori di veicoli e aerei generano e rilasciano calore, e come tali, sono particolarmente visibili alle lunghezze d’onda infrarosse rispetto agli oggetti sullo sfondo. Il problema principale di questo tipo di localizzazione ` l’impossibilit` di e a oltrepassare muri ed ostruzioni. Inoltre, in ambienti indoor, si aggiunge il disturbo provocato dall’illuminazione artificiale; la portata di un sistema a infrarossi non supera i 5 metri, sebbene con una buona precisione (qualche centimetro). Ultrasuoni Sebbene gli ultrasuoni lavorino a basse frequenze (tipicamente sotto i 20 kHz), essi forniscono una buona precisione per la localizzazione a una bassa ve- locit` di propagazione del suono (343 m/s). I loro vantaggi sono principalmente a la semplicit` e il basso costo. Gli ultrasuoni comunque, non penetrano i muri, a vengono riflessi dalla maggior parte degli ostacoli presenti in ambienti indoor e variazioni di temperatura possono influenzarne le performance. Il range di utilizzo pu` oscillare tra i 3 e i 10 metri, con una risoluzione anche al centimetro. o Radiofrequenze Rispetto alle tecnologie citate precedentemente, i segnali radio posso- no penetrare la maggior parte dei materiali da costruzione, riuscendo ad ottenere un ottimo range in ambienti indoor rispetto agli infrarossi e agli ultrasuoni. Pur- troppo questo tipo di localizzazione risente di fenomeni di attenuazione, rifrazione, diffrazione e multipath che verranno approfonditi nel paragrafo 2.1. Di seguito, verranno presentati innanzitutto i diversi fenomeni fisici che si verificano nella propagazione del segnale elettromagnetico e, successivamente, vari approcci al proble- ma di localizzazione, mettendo in evidenza le possibilit` di applicabilit` degli stessi e le a a problematiche con il quale devono confrontarsi. Verranno considerati esclusivamente gli approcci basati sulla propagazione del segnale radio, in quanto in ambienti indoor, sono gli unici che non richiedono la condizione di Line-of-Sight (LoS)2 e risentono relativa- mente poco delle variazioni di temperatura e illuminazione. Considerando che spesso la posizione trovata ` solo approssimata, si parla anche di stima di localizzazione (location e estimation). 2 Ovvero la propagazione del segnale elettromagnetico secondo una linea retta immaginaria che collega il trasmettitore e il ricevitore
  • 43.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 29 2.1 Fenomeni nella propagazione radio Nella localizzazione basata su segnali radio, ` importante conoscere le propriet` di propa- e a gazione della radiazione elettromagnetica. Fenomeni come attenuazione, rifrazione, scat- tering e diffrazione hanno un ruolo rilevante, soprattutto in ambienti urbani o indoor. Le sezioni successive si occupano di descrivere gli aspetti fondamentali della propagazione di onde radio, analizzando anche alcuni modelli di propagazione. 2.1.1 Attenuazione dello spazio libero L’attenuazione dello spazio libero (free-space loss), rappresenta la perdita di potenza dal parte del segnale elettromagnetico che si ottiene in condizioni di LoS attraverso il vuoto, senza nessun ostacolo che causi riflessione, assorbimento o diffrazione. Un’antenna isotropa trasmette una potenza Ptx con la stessa intensit` in tutte le a direzioni, ma la potenza riguarda un’area sempre maggiore man mano che l’onda si allontana dall’antenna. Essendo 4πr2 la superficie della sfera di raggio r, la potenza S che attraversa un m2 di superficie sferica ortogonale alla direzione di propagazione `: e Ptx S= . 4πr2 Tutte le antenne reali hanno tutte un guadagno Gtx per ogni direzione di propagazione, di cui va tenuto conto nel calcolo dell’energia irradiata in quella direzione, per cui la potenza prodotta da un’antenna reale, che attraversa l’area di un m2 normale alla direzione di propagazione, risulta, di fatto, moltiplicata per il guadagno di detta antenna nella direzione della propagazione: Gtx · Ptx S= . 4πr2 Volendo calcolare poi la potenza Prx raccolta da un’antenna di area equivalente 3 : λ2 · Grx Aeq = , 4π dove λ ` la lunghezza d’onda, si ottiene: e Gtx · Ptx λ2 · Grx Ptx · Gtx · Grx · λ2 Prx = S · Aeq = · = . (2.1) 4πr2 4π (4πr)2 Poich´ il termine: e 2 4πr Asl = λ 3 Tale fattore dipende dalla dimensione e dalla forma dell’antenna, rappresenta l’area effettiva su cui il segnale incide in ricezione.
  • 44.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 30 si chiama attenuazione dello spazio libero, l’equazione 2.1 si trasforma in: Ptx · Gtx · Grx Prx = , (2.2) Asl detta anche equazione di Friis. Solitamente le grandezze in sono espresse in decibel, per cui la 2.2 diventa: Prx [ dBm] = Ptx [ dBm] + Gtx [ dB] + Grx [ dB] − Asl [ dB]. L’equazione di Friis per l’attenuazione dello spazio libero mostra che la potenza in ricezione decresce con il quadrato della distanza, ovvero di 20 dB/decade. Ovviamente se le condizioni di visibilit` tra trasmettitore e ricevitore vengono a mancare, la potenza a del segnale ricevuto ` significativamente minore di quanto l’equazione per l’attenua- e zione dello spazio libero indica. Inoltre, non necessariamente essa fornisce una buona approssimazione anche in condizioni di LoS [Rap01]. 2.1.2 Assorbimento In qualsiasi sistema di comunicazione, il segnale si propaga in un mezzo trasmissivo. Nel caso di sistemi wireless terrestri il mezzo ` principalmente l’atmosfera e, in piccola e misura, materiali come vetro, calcestruzzo, legno, ecc. In seguito alle interazioni con essi, il segnale perde parte della sua energia per ogni unit` di distanza in cui si propaga. a Pertanto, l’assorbimento provoca una diminuzione di potenza proporzionale a γ −d , dove d ` la distanza e γ ` una costante che dipende dalle propriet` del mezzo e dalla frequenza. e e a Ragionando in db, questo significa che la perdita di segnale ` lineare con la distanza. e L’assorbimento ` particolarmente alto per frequenze oltre i 10 GHz; in questa situa- e zione, a causa dell’atmosfera, esso diventa comparabile all’attenuazione, specialmente durante piogge e con distanze considerevoli. Con le frequenze usate nella maggior parte dei sistemi di comunicazione wireless (al di sotto dei 10 GHz), l’assorbimento atmosferico ` quasi trascurabile per distanze entro i 10 km. e 2.1.3 Rifrazione Il fenomeno di rifrazione si verifica quando l’onda incontra un ostacolo con dimensioni maggiori della lunghezza d’onda. La parte di essa che non ` riflessa perde parte della sua e energia in assorbimento e ci` che rimane riesce ad attraversare il materiale riflettente. o Nelle comunicazioni terrestri le onde sono riflesse dal terreno, producendo due percorsi tra il trasmettitore e il ricevitore, come mostrato in figura 2.1; il piano di incidenza ` e definito come il piano contenente il raggio incidente e quello riflesso, mentre l’angolo di incidenza α ` l’angolo tra la superficie riflettente e il raggio incidente. Il segnale al e ricevitore arriva quindi come due componenti, con differente fase, che nel caso peggiore
  • 45.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 31 Trasmettitore Ricevitore α β Figura 2.1: Fenomeno di rifrazione possono annullarsi. L’intensit` del segnale riflesso dipende dal coefficiente di riflessione a di Fresnel che a sua volta dipende dalle propriet` del materiale riflettente, dalla frequenza a e dall’angolo di incidenza α. L’asperit` della superficie causa la dispersione dell’onda a in pi` direzioni e quindi il suo coefficiente di riflessione ` minore rispetto a un’altra u e identica ma liscia; in generale esso ` differente per la componente orizzontale e verticale e dell’onda. In tali casi, la riflessione pu` cambiare la polarizzazione. o 2.1.4 Scattering Lo scattering (dispersione) consiste in una deviazione delle onde elettromagnetiche dalla loro direzione di provenienza a causa delle continue riflessioni che esse subiscono incon- trando molecole di gas, pulviscolo, gocce d’acqua ed altri elementi. Tale fenomeno si verifica quando l’ostacolo ha dimensioni pari o inferiori alla lunghezza d’onda del segna- le. L’energia radiante viene diffusa in tutte le direzioni, in modo pi` o meno accentuato, u facendole perdere la sua caratteristica di unidirezionalit`. Gli effetti quantitativi dello a scattering dipendono moltissimo dal rapporto fra la lunghezza d’onda delle radiazioni e le dimensioni fisiche delle particelle con cui interagiscono. 2.1.5 Diffrazione In base al principio di Huygens, tutti i punti di fronte d’onda sono sorgenti di onde secondarie che si propagano in tutte le direzioni. Inoltre, ogni volta che un’onda radio colpisce uno spigolo come un angolo di un edificio, l’onda si incurva e continua a propa- garsi nell’area oscurata da esso. Tale effetto viene chiamato diffrazione. In figura 2.2 il trasmettitore ` situato vicino a un ostacolo; le frecce descrivono la direzione di propa- e gazione quando il segnale si trova vicino allo spigolo, dovuta alle sorgenti secondarie del fronte d’onda che si creano nei pressi dell’ostacolo. Pi` l’onda deve curvare intorno allo spigolo, pi` essa perde energia. Quindi l’area u u in cui il segnale curva maggiormente guadagnano relativamente meno potenza rispetto
  • 46.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 32 all’area in cui il segnale procede quasi linearmente. La potenza del campo generato dalle onde secondarie ` inferiore rispetto a quello delle onde primarie; in pratica quest’ultime e possono essere trascurate se esiste una condizione di LoS tra il trasmettitore e il ricevito- re. Il fenomeno della diffrazione viene sfruttato, ad esempio, per realizzare comunicazioni radio oltre le montagne, quando un path LoS non ` disponibile; ovviamente la potenza e di trasmissione dovr` essere molto maggiore rispetto ad una trasmissione LoS. a Figura 2.2: Fenomeno di diffrazione 2.1.6 Multipath La conseguenza diretta di tutti i fenomeni citati precedentemente ` il multipath. Tale e effetto si verifica in conseguenza agli effetti di riflessione, diffrazione e scattering delle onde nell’ambiente, che giungono al ricevitore come somma delle copie delle onde stesse. Questo fatto pu` essere determinato, per esempio, nel caso delle trasmissioni tra cellulari, o dal fatto che il trasmettitore o il ricevitore si spostano continuamente costringendo le onde elettromagnetiche ad effettuare percorsi continuamente variabili con attenuazioni quindi diverse. Il risultato pi` rilevante del multipath ` il fading, ovvero il fatto che molteplici copie u e del segnale arrivano sovrapposte al ricevitore, con differente fase, ritardo e attenuazione, rendendo possibile la somma distruttiva delle stesse e causando interferenza intersimbolo. Il segnale ricevuto ` spesso modellato con l’effetto combinato di slow e fast fading. e La componente di slow fading descrive l’attenuazione e l’assorbimento del segnale prima dell’arrivo al ricevitore; solitamente ha una distribuzione lognormale. Il fast fading modella invece gli effetti dovuti al multipath. Se esiste almeno un percorso dominante in condizioni di LOS, quest’ultimo viene rappresentato con una distribuzione di Rician, altrimenti viene utilizzata la distribuzione di Rayleigh quando tale condizione non si verifica. Il fading inoltre, pu` essere selective o flat, in base al fatto che tale fenomeno interessi o particolari frequenze oppure si verifichi uniformemente su tutto lo spettro. Maggiori dettagli sul fading possono essere trovati in [Rap01, Sey00].
  • 47.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 33 2.2 Modelli di propagazione La predizione della propagazione delle onde radio ` molto utile in attivit` come link bud- e a geting, cell planning e appunto la localizzazione. I modelli di propagazione sono utilizzati per prevedere le propriet` delle onde che si propagano, la qualit` del segnale ricevuto a a a ` e la sua variabilit`. E possibile inoltre predire polarizzazione, dispersione temporale e selettivit` in frequenza. a Gli aspetti teorici menzionati nei paragrafi precedenti possono essere tenuti da conto in vari livelli di astrazione, in base alla quantit` di informazioni disponibili sull’am- a biente e all’accuratezza richiesta dal modello. Per esempio, durante la pianificazione di una comunicazione satellitare o in generale di collegamenti estesi su decine di chilo- metri, una buona precisione ` spesso ottenuta considerando l’attenuazione (path-loss), e l’assorbimento e la riflessione della terra. Diversamente, in aree urbane, riflessione e dif- frazione causati dagli edifici e lo scattering provocato ad esempio da alberi, hanno una forte influenza sulla propagazione del segnale. In base alle informazioni sull’ambiente che abbiamo a disposizione possiamo tra tre tipi di modelli: Empirici Si basano principalmente su statistiche derivanti da misurazioni e su pochi parametri. Sono abbastanza semplici e non molto accurati. In generale ` possibile e applicarli anche in ambienti differenti. Deterministici Sono realizzati ad-hoc per un particolare ambiente e richiedono un’e- norme quantit` di dati geometrici su di esso. Spesso sono computazionalmente a molto costosi anche se abbastanza accurati. Semi-deterministici Basati su modelli empirici, considerando anche aspetti determi- nistici. In ambienti urbani, uno dei modelli pi` utilizzati, ` quello di Okumura-Hata [Sau00]. u e Esso include un insieme di curve che indicano il path-loss, prendendo in considerazione l’attenuazione e un fattore di correzione. Quest’ultimo ` ricavato da una funzione della e distanza e della frequenza del segnale. Tale modello ` applicabile quando le frequenze di e trasmissione sono comprese tra i 150 e i 1500 MHz, con distanze tra 1 e 10 chilometri. In ambienti indoor le distanze che separano il trasmettitore e il ricevitore sono molto minori (nell’ordine dei 100 metri) ma i fenomeni fisici visti precedentemente si verificano con molta pi` variabilit`. Il tipo di edificio, i suoi materiali da costruzione, le posizioni u a delle antenne, possono influenzare in modo rilevante il path-loss. In tali ambienti risul- tano interessanti l’ITU Model for Indoor Attenuation e il Log-Normal Shadowing Model che approfondiremo nelle sezioni seguenti. Essi si basano sul principio generico, descritto dall’equazione di Friis (equazione 2.2), per cui la potenza del segnale in ricezione decresce proporzionalmente a d−np , sia in
  • 48.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 34 Frequenza Abitazione Ufficio Area commerciale 900 MHz - 33 20 1.2 GHz - 32 22 1.3 GHz - 32 22 1.8 GHz 28 30 22 4 GHz - 28 22 5.2 GHz - 31 - Tabella 2.1: Valori del parametro N nell’ITU Model Frequenza Numero di piani Abitazione Ufficio Area commerciale 900 MHz 1 - 9 - 900 MHz 2 - 19 - 900 MHz 3 - 24 - 1.8 GHz n 4n 15+4(n-1) 6+3(n-1) 2.0 GHz n 4n 15+4(n-1) 6+3(n-1) 5.2 GHz 1 - 16 - Tabella 2.2: Valori del parametro Pf (n) nell’ITU Model ambienti indoor che outdoor, dove d ` la distanza tra trasmettitore e ricevitore, mentre e np ` detto esponente di path-loss ed assume valori tipicamente tra 2 e 44 . Il path-loss e alla distanza d (P L(d)[ dB]) ` modellato come: e d P L(d) = P0 − 10np log , (2.3) d0 dove P0 [ dB] ` la potenza ricevuta alla distanza di riferimento d0 [ m]. e ITU Model for Indoor Attenuation L’ITU Indoor Propagation Model [IR01], ` un modello di propagazione del segnale che e stima il path-loss dentro un edificio delimitato da muri di qualsiasi forma e materiale. Esso prende in considerazione anche l’attenuazione fra diversi piani dell’edificio (fino a 3) ed ` adatto per segnali a frequenze comprese tra i 900 MHz e i 5.2 GHz. L’equazione e caratteristica del modello ` la seguente: e L = 20 log f + N log d + Pf (n) − 28, dove L ` l’attenuazione totale [dB], f ` la frequenza di trasmissione [MHz], N ` il e e e coefficiente di perdita di potenza con la distanza, d ` la distanza [m], n ` il numero e e di piani che separano trasmettitore e ricevitore e Pf (n) ` il fattore di penetrazione del e piano. N e Pf (n) sono ricavati empiricamente; alcuni valori sono elencati nelle tabelle 2.1 e 2.2. 4 np = 2 nello spazio libero e maggiore di 2 in presenza di ostruzioni
  • 49.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 35 Ambiente Frequenza 10γ σ Negozio 914 MHz 22 8.7 Alimentari 914 MHz 18 5.2 Ufficio con muri spessi 1.5 GHz 30 7 Ufficio con muri 900 MHz 24 9.6 Ufficio con muri 1.9 GHz 26 14.1 Tessile o chimico 1.3 GHz 20 3.0 Tessile o chimico 4 GHz 21 7.0-9.7 Metallico 1.3 GHz 16 5.8 Metallico 1.3 GHz 33 6.8 Tabella 2.3: Coefficienti del Log-Distance Path-Loss Model Log-Normal Shadowing Model Il Log-Normal Shadowing Model ` un modello di propagazione del segnale radio che e predice l’attenuazione che il segnale incontra all’interno di un edificio, correlata alla distanza. Esso ` descritto in dettaglio in [Rap01]. L’equazione da cui si ricava il path-loss e ` la seguente: e d L = L0 + 10γlog 10 + Xg , d0 in cui L ` il path-loss totale all’interno dell’edificio [dB], L0 ` il path-loss alla distanza e e d0 [dB], d ` la distanza che separa trasmettitore e ricevitore [m], d0 ` la distanza di e e riferimento [m], γ ` l’esponente di path-loss e Xg ` una variabile casuale gaussiana a e e media nulla e varianza σ 2 , relativa ai fenomeni di fading (shadow fading). Anche questi questi coefficienti sono ricavati empiricamente; alcuni loro valori sono elencati in tabella 2.3. 2.3 Il processo di localizzazione La localizzazione ` un processo mediante il quale i nodi determinano la loro posizione. e In termini semplici, la localizzazione ` un meccanismo per scoprire le relazioni spaziali e tra oggetti. I differenti approcci scelti in letteratura differiscono dal punto di vista delle assunzioni fatte sulle capacit` della rete e dei nodi utilizzati. Una lista dettagliata di a assunzioni possibili, seppur non esaustiva, comprende assunzioni sul tipo di hardware disponibile, modelli di propagazione del segnale, requisiti energetici e di temporizzazione, tipo di ambiente (indoor o outdoor), densit` di nodi beacon, precisione necessaria e a mobilit` dei nodi. In particolare, in condizioni di mobilit`, possono presentarsi quattro a a differenti scenari, in base al fatto che i nodi o i beacon hanno la possibilit` di spostarsi. a Nel seguito verranno presentati alcuni tra pi` rilevanti approcci al problema della u localizzazione, raggruppandoli in due principali categorie: i metodi di localizzazione range-based e range-free.
  • 50.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 36 2.4 Metodi di localizzazione range-based Nei metodi di localizzazione range-based, la posizione di un nodo ` calcolata relativa- e mente ai nodi nelle vicinanze5 . Essi fanno l’assunzione che la distanza tra il trasmettitore e il ricevitore pu` essere stimata considerando una o pi` caratteristiche del segnale. La o u precisione di tale stima, comunque, dipende dalle condizioni del canale di trasmissione e dall’ambiente circostante. Spesso, a causa dei fenomeni fisici visti precedentemente, essa pu` essere inaccurata e necessita di ulteriori elaborazioni. o Le caratteristiche del segnale usate frequentemente in approcci range-based saranno descritte nei paragrafi seguenti. 2.4.1 Time Of Arrival Il Time Of Arrival (TOA) ` comunemente usato per ottenere informazioni sulla distanza e attraverso il tempo di propagazione del segnale. Mediante la relazione esistente tra la velocit` della luce nel vuoto e la frequenza del segnale ` possibile ricavare la distanza a e tra trasmettitore e ricevitore. Il sistema pi` conosciuto che utilizza il TOA ` senz’altro u e GPS; esso richiede un hardware dedicato, per mantenere una precisa sincronizzazione con i clock dei satelliti. A differenza del TOA, il Time Difference Of Arrival (TDOA), non impiega i tempi assoluti di invio e ricezione del segnale, ma le differenze temporali relative fra i nodi. Combinando almeno tre distanze ricavate da tre posizioni di riferimento, ` possibile e stimare la posizione del dispositivo effettuando un procedimento di trilaterazione, impo- stando un sistema di equazioni che permette di trovare l’intersezione tra le circonferenze centrate sui nodi di riferimento (fig. 2.3). Nel caso di tre nodi di riferimento avremo il seguente sistema:   (x1 − x)2 + (y1 − y)2 = d2  1  (x − x)2 + (y2 − y)2 = d2 ,  2 2  (x − x)2 + (y − y)2 = d2  3 3 3 dove (xi , yi ) sono le coordinate del nodo di riferimento i e di le singole distanze stimate. Ovviamente all’aumentare dei nodi di riferimento ` possibile impostare un problema di e ottimizzazione (ad esempio minimi quadrati) incrementando notevolmente l’accuratezza della stima (in questo caso si parla di multilaterazione). 2.4.2 Angle Of Arrival L’Angle Of Arrival (AOA) ` definito come l’angolo formato dalla direzione di propa- e gazione dell’onda incidente rispetto ad una direzione di riferimento, che ` nota come e orientamento. In particolare viene misurata la direzione del segnale che arriva dal nodo 5 Sono i nodi presenti nel raggio di copertura del segnale del dispositivo
  • 51.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 37 (x2,y2) (x1,y1) d1 d 2 (x,y) d3 (x3,y3) Figura 2.3: Il procedimento di trilaterazione mobile ad altri due nodi. Se la posizione dei quest’ultimi ` nota, ` possibile utilizzare la e e triangolazione per determinare la posizione dell’unit` mobile. Se sono disponibili pi` di a u tre misurazioni di angoli, esse non necessariamente sono compatibili a causa di possibili errori e perci` devono essere applicate delle medie complicate per ottenere la posizione o [NN03]. Un approccio comune per misurare l’AOA ` utilizzare un array di antenne e ci` lo e o rende quasi inapplicabile nelle WSN, a causa del suo costo e della sua complessit`. a 2.4.3 Received Signal Strenght Una possibilit` per acquisire informazioni sulla distanza ` correlarla alla potenza del a e segnale ricevuto, denominata Received Signal Strenght (RSS). L’idea fondamentale die- tro questo approccio ` che la potenza di trasmissione Ptx influisce direttamente sulla e potenza di ricezione Prx . Secondo l’equazione 2.1, Prx varia in modo quadratico con la distanza dal trasmettitore r. Ovviamente questo ragionamento ` corretto nelle condizioni ideali di LoS tra tra- e smettitore e ricevitore, nel vuoto e in assenza di fenomeni come rifrazione, diffrazione e multipath. In scenari reali, e in particolar modo in ambienti indoor, l’andamento rea- le dell’equazione 2.1 non ` applicabile direttamente, in quanto il RSS ` influenzato da e e molteplici fattori: Variabilit` del trasmettitore Differenti tipi di trasmettitori si comportano differen- a temente, anche se configurati nello stesso modo. In pratica, questo significa che quando un trasmettitore ` configurato per inviare dati ad un livello di potenza di e p dBm, il valore reale non sar` esattamente uguale a quanto impostato. Questo a pu` alterare il RSS in ricezione e portare pertanto a stime inaccurate. o
  • 52.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 38 Variabilit` del ricevitore La sensibilit` del ricevitore, su diversi circuiti radio ` dif- a a e ferente. In pratica, questo significa che il RSS misurato su pi` tipi di ricevitori u pu` non coincidere, anche se tutti gli altri parametri che lo influenzano rimangono o costanti. Orientamento dell’antenna Ogni tipo di antenna ha il proprio pattern di radiazione e anche se essa idealmente ` isotropa, nella realt` il suo guadagno non sar` uni- e a a forme. Ci` significa che alla medesima distanza, modificando l’orientamento del o dispositivo di trasmissione o ricezione, la misurazione del RSS sar` differente. a Multipath fading Come descritto al paragrafo 2.1.6, in ambienti indoor, il segnale tra- smesso viene riflesso dopo aver colpito muri o altri oggetti. Sia il segnale originale che quello riflesso raggiungono il ricevitore quasi allo stesso istante, considerata la velocit` di propagazione pari a quella della luce. Come risultato di questo, il RSS a viene calcolato per entrambi i segnali dato che essi non sono distinguibili. Interferenze La presenza di altri campi elettromagnetici generati da altre fonti pu` o ampliare o attenuare il segnale e di conseguenza influire sul RSS. In molte applicazioni, tali effetti, possono degradare la bont` della misurazione fa- a cendo ottenere un’alta varianza ed una bassa entropia sui dati rilevati. Spesso quindi, correlare la potenza del segnale ricevuto alla distanza e, successivamente, alla posizione, richiede la progettazione di sistemi che tengano conto della rumorosit` del RSS. a Il fattore positivo negli algoritmi che utilizzano il RSS ` il basso costo e complessit`; e a come vedremo al capitolo 3, nello standard IEEE 802.15.4 sono previste delle primitive del livello fisico che permettono di estrarre il valore del RSS su ogni pacchetto ricevuto. In questo modo ` possibile implementare algoritmi di localizzazione su qualsiasi tipo di e nodo compliant con lo standard, senza la necessit` di hardware costosi. a In letteratura, esistono molti approcci basati sulle considerazioni fatte, tra cui prin- cipalmente [SHS01, PHP+ 03, BGGT07, SKOM06]. 2.4.3.1 RSS fingerprinting Alcuni metodi di localizzazione non impiegano il RSS per ricavarne informazioni relative distanza; l’idea ` quella di identificare una locazione sulla base della sua impronta RSS e (RSS fingerprint) rispetto a diversi nodi beacon, sotto l’assunzione che essa ` univoca e per tutte le posizioni dell’ambiente in esame. Generalmente, un’impronta I ` associata e alle informazioni sulla posizione P , costruendo una tupla < I, P > che viene inserita in un database durante una prima fase off-line, denominata RSS profiling. La dimensione delle coordinate reali nella tupla pu` variare da 1 a 5, considerando uno spazio tridimen- o sionale e due variabili di orientamento. Ad esempio, le informazioni sulla posizione di
  • 53.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 39 un sistema bidimensionale con orientamento, possono essere rappresentate dalla tripletta P = {(x, y, o)|x, y ∈ R2 , d ∈ {Nord,Est,Sud,Ovest}}. Nonostante il RSS risulti molto pi` dipendente dalla posizione, rispetto al SNR, es- u so pu` variare nel tempo rispetto al medesimo beacon e deve essere considerato come o una variabile casuale; possono essere utilizzate statistiche descrittive, approssimando la distribuzione delle misurazioni, oppure mantenendo tutti i dati. Indipendentemente dall’approccio scelto, l’impronta RSS di una determinata posizione conterr` un vettore a I = {RSS1 , RSS2 , ..., RSSn }, dove n dipende dal numero di beacon considerati. Ovvia- mente, il numero di campioni raccolti per rappresentare correttamente la locazione deve essere adeguato all’ambiente, al fine di eliminare eventuali mismatch nell’algoritmo che effettuer` la corrispondenza. In figura 2.4 ` possibile osservare un ambiente in cui sono a e state effettuate misurazioni di impronte RSS (RADAR [BP00]). Wireless Access Point RSS ngerprint Figura 2.4: Impronte RSS nel sistema RADAR [BP00] Dopo la fase di profiling, il problema di localizzazione entra nella fase on-line, in cui l’impronta RSS del nodo viene campionata a intervalli regolari e se ne cerca l’eventuale corrispondenza nel database costruito. Esistono vari algoritmi per trovare tali corrispon- denze, alcuni deterministici basati su reti neurali o classificatori nearest neighbour, altri probabilistici che impiegano l’inferenza bayesiana. Ad esempio la soluzione descritta in [BP00] utilizza la metrica definita nearest neighbour in signal space (NNSS) che usa essenzialmente la distanza euclidea. Come si pu` comprendere, questa classe algoritmi richiede molto tempo per la fase o di profiling e una modifica nella configurazione dei beacon comporta la ripetizione di
  • 54.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 40 tutte le misurazioni. Risultano tuttavia molto robusti rispetto ai fenomeni che di soli- to influenzano il RSS, soprattutto indoor. Essi sono utilizzati con successo in scenari abbastanza statici, come la localizzazione in uffici. Un altro sistema basato su quanto appena descritto ` Motetrack [LW04]. e 2.5 Metodi di localizzazione range-free L’approccio alla localizzazione range-free non si occupa di calcolare le distanze basandosi sulla potenza del segnale ricevuto o altre caratteristiche del segnale come tempo, angolo, ecc. Piuttosto, la posizione dei nodi viene calcolata sfruttando delle propriet` topologiche a della rete, ad esempio tenendo presente il numero di hop tra trasmettitore e ricevitore oppure considerando informazioni sulla connettivit` con i nodi vicini [SRZF07]. a Un semplice algoritmo range-free ` quello basato sul centroide [BHE00]; il nodo che e vuole conoscere la sua posizione calcola il centroide delle posizioni inviate dai beacon che lo circondano. Esso genera un errore sulla localizzazione che ovviamente dipende dalla configurazione dei beacon e dalla posizione del nodo. Un approccio interessante ` APIT (Approximate Point In Triangulation), descritto e in [HHB+ 03]. Esso richiede che una piccola percentuale di dispositivi conosca la sua posizione e sia equipaggiato con un trasmettitore ad alta potenza. Ogni nodo stima se si trova all’interno di una regione triangolare tra i beacon (fig. 2.5(a)); la presenza di un nodo dentro o fuori queste aree permette di restringere l’area in cui esso potenzialmente risiede. Utilizzando di volta in volta combinazioni di tre beacon, la precisione sulla localizzazione aumenta ad ogni iterazione. (a) APIT [HHB+ 03] (b) DV-HOP [NN01] Figura 2.5: Alcuni approcci di localizzazione range-free Un altro algoritmo di localizzazione range-free ` DV-HOP [NN01] che impiega un e numero costante di beacon ed ` basato su un’euristica che mette in relazione la distanza e con il numero di hop in reti isotrope 2.5(b). Sostanzialmente ogni nodo calcola il numero
  • 55.
    Capitolo 2. Localizzazionebasata su dispositivi wireless 41 di hop che lo separano dal beacon e lo trasforma in una distanza. L’algoritmo ` struttu- e rato in due fasi: nella prima fase, ogni nodo ascolta i messaggi propagati in flooding dai beacon e registra il minor numero di hop che lo separano da esso. Nella seconda fase, in base alla stima effettuata, il nodo propaga un fattore di correzione che rappresenta la distanza reale di un hop da lui percepita. Tale approccio comporta tuttavia un alto errore di localizzazione in reti anisotrope, dove l’esistenza di un “buco” nella struttura fa venire meno la proporzionalit` fra numero di hop e distanza, causando stime inaccurate. a Data le limitazioni sulla complessit` dell’hardware di un dispositivo appartenente a a WSN, le soluzioni range-free risultano una buona alternativa rispetto a quelle range- based, anche se talvolta hanno dei requisiti abbastanza stringenti sulla topologia di rete (richiedono ad esempio reti isotrope) e sulla densit` di dispositivi che ne fanno parte. a
  • 56.
    Capitolo 3 Lo standardZigBee Ad oggi, la realizzazione di Personal Area Network (PAN) basate su protocolli wireless, sta riscontrando notevole interesse, sia in ambito accademico che industriale. Nono- stante vi siano molteplici standard e protocolli gi` consolidati ed idonei a questo scopo a come Wi-Fi e Bluetooth, esistono tuttavia alcuni scenari applicativi in cui sono richieste funzionalit` aggiuntive al trasferimento dati. Si pensi ad esempio al monitoraggio di a componenti meccaniche in movimento in un’industria, al fine di misurare alcune gran- dezze fisiche di interesse, come ad esempio accelerazioni e temperature. Una prima idea potrebbe essere quella di impiegare dei sensori, integrati in nodi basati su Wi-Fi, collocati sulle parti da monitorare; sorgono immediatamente alcuni dubbi, sia su come alimentare i nodi a lungo termine (dato il consumo energetico non indifferente di tali dispositivi non ` praticabile l’impiego di batterie, almeno di ridotte dimensioni), sia in e che modo organizzare la rete dal punto di vista gerarchico, per l’aggregazione dei dati. Tali problematiche sono tra quelle principali per cui sono state introdotte le Wireless Sensor Network (WSN) [SACO06] e a cui appunto ZigBee1 appartiene. In questo capitolo verr` illustrata a grandi linee la struttura dello standard, focaliz- a zando l’attenzione sulle funzionalit` dello stack che sono risultate di interesse per nella a valutazione e la successiva implementazione delle applicazioni. Tale studio ha permesso di avere le prime indicazioni da cui partire per risolvere un problema di localizzazione, ottenute analizzando le informazioni riportate dalle primitive relative alla qualit` del se- a gnale (Link Quality Indicator ). Sono inoltre riportate le motivazioni che hanno portato alla selezione di dispositivi ZigBee per la realizzazione di questo lavoro di tesi. 1 ZigBee ` un marchio registrato dalla ZigBee Alliance e 42
  • 57.
    Capitolo 3. Lostandard ZigBee 43 3.1 Le motivazioni della scelta L’integrazione di tecnologie per WSN e sistemi di robotica mobile, al fine di realizzare un’applicazione per la localizzazione, pone dei requisiti abbastanza chiari alla piatta- forma hardware e software. L’avere a che fare con un sistema che lavora in mobilit`, a introduce nuove problematiche, soprattutto per quanto riguarda l’organizzazione e ge- stione della rete. Inoltre, fattori come basso costo e autonomia in termini energetici, sono fondamentali al fine di rendere l’applicazione facilmente realizzabile anche nella pratica. Come ultimo, e non per questo meno importante aspetto, occorre menzionare le possibilit` di miniaturizzazione dei dispositivi, in modo da poterli facilmente installare a su varie tipologie di robot mobili, anche di piccole dimensioni. Per di pi`, essi potreb- u bero essere indossati anche da persone o rilasciati dinamicamente nell’ambiente durante il processo di esplorazione, in modo da garantirne la successiva localizzazione. Dopo un’attenta analisi, la scelta ` stata indirizzata verso lo standard per LR-WPAN e ZigBee, dato che, come vedremo successivamente nel resto del capitolo, presenta molti dei requisiti descritti in precedenza. La selezione ` stata effettuata dopo due settimane di e sperimentazione presso l’RFID-Lab2 , un laboratorio che si occupa principalmente di test e integrazione di tecnologie wireless, in particolare Wi-Fi, Bluetooth, RFID, e appunto ZigBee. Effettivamente questo periodo ` stato di fondamentale importanza anche per e considerare altre alternative (ad esempio TinyOS) e al fine di valutare anche a livello applicativo la soluzione che si stava scegliendo. Le piattaforma selezionata dopo questa fase di studio ` stata quella prodotta da e Freescale, per la precisione quella basata sul SiP MC13213 e ZigBee compliant rispetto alla specifica ZigBee 2006. Per ulteriori dettagli sulla piattaforma impiegata si consulti il paragrafo 4.1 e per le caratteristiche tecniche l’appendice A. 3.2 La nascita dello standard I primi studi, che hanno portato alla successiva definizione dello standard, risalgono al 1998 ad opera di Motorola, quando alcuni gruppi di ingegneri si resero conto che effetti- vamente molti nuovi scenari applicativi non potevano essere risolti efficacemente con le tecnologie wireless esistenti. La versione 1.0 delle specifiche (ZigBee 2004) viene pubbli- cata nel dicembre 2004, anche a seguito del lavoro svolto da IEEE per creare uno stan- dard per il livello fisico e di accesso al mezzo (MAC) per le LR-WPAN, ovvero 802.15.4 [IEE06]. Contemporaneamente, nel 2002, nasceva la ZigBee Alliance, un’associazione di oltre 200 aziende a cui partecipano alcuni dei maggiori produttori di semiconduttori a livello mondiale, tra cui Freescale, Texas Instruments, Philips, Honeywell e Oki. Essa si 2 http://w3.uniroma1.it/rfidlab/default.asp
  • 58.
    Capitolo 3. Lostandard ZigBee 44 occupa di gestire l’evoluzione dello standard e di garantire l’interoperabilit` e conformi- a t` alle specifiche delle applicazioni sviluppate. La versione attualmente in uso ` ZigBee a e 2006 (settembre 2006) [Zig06] e dall’ultimo trimestre del 2007 sta per essere finalizzata la nuova versione ZigBee Pro, che comprende alcune migliorie per quanto riguarda la scalabilit` e la sicurezza in reti di grande complessit`. a a 3.3 Caratteristiche Le migliori peculiarit` di ZigBee, se vogliamo, sono racchiuse proprio nel suo nome. La a parola ZigBee infatti, deriva dallo zigzagare delle api durante il volo; ci` rappresenta o proprio la semplicit` con cui ` possibile organizzare la struttura della rete e la comuni- a e cazione (in particolare l’instradamento), anche in caso di guasti. Quello che aggiunge altro entusiasmo intorno alla nascita di questo protocollo ` inoltre la sua straordinaria e stabilit` ed affidabilit`, a fronte di consumi energetici irrisori; si pensi che con un’ali- a a mentazione di 3 V3 , ` possibile mantenere operativo un nodo anche per pi` di un anno. e u Tutte queste caratteristiche portano ZigBee ad essere molto indicato in applicazioni di controllo e monitoraggio, in cui ad esempio ` significativo avere bassa latenza nelle comu- e nicazioni, sia per lo scambio di messaggi che per il collegamento alla rete. Al contrario esso non ` stato progettato per lo scambio dati ad alti data rate; il suo massimo bitrate e ottenibile ` di appena 250 Kbps. In figura 3.1 sono stati messi a confronto il bitrate e il e range trasmissivo raggiungibili da ZigBee, rispetto ad altri protocolli wireless. Considerando che la maggior parte dei dispositivi ZigBee compliant permette il col- legamento di trasduttori e sensori di varie tipologie, possiamo immaginare dei possibili scenari in cui ZigBee pu` essere impiegato convenientemente: o Home automation Sicurezza, controllo illuminazione, HVAC, controllo accessi. Controllo industriale Monitoraggio dei processi, gestione energia e risorse. Agricoltura di precisione Irrigazione controllata, dosaggio fertilizzanti. Health care Sensori e apparecchiature medicali, controllo pazienti, telemedicina. Elettronica di consumo Periferiche, controllo a distanza elettrodomestici, giocattoli. Gli altri punti di forza di questa tecnologia risultano essere la bassa complessit` e a di conseguenza il costo di produzione. La dimensione dello stack ` molto ridotta (nel- e l’ordine dei 50 KB) rispetto a Bluetooth o Wi-Fi e richiede perci` hardware abbastanza o economico; una piattaforma hardware tipica ` formata da processore a 16 MHz con 4 e 3 Tensione corrispondente a due comuni batterie AA.
  • 59.
    Capitolo 3. Lostandard ZigBee 45 Text Internet/Audio Compressed Video Digital Video 150 m 802.11b Range (m) 802.11a, g 100 m 802.15.4/ZigBee Bluetooth 2 802.15.3/UWB 10 m Bluetooth 1 100 Kbps 1 Mbps 10 Mbps 50 Mbps 100 Mbps Data Rate Figura 3.1: Bitrate e range trasmissivi di ZigBee rispetto ad altri standard wireless KB di RAM e 128 KB di memoria flash, modem e porte di I/O. Spesso tali componen- ti vengono integrati in singoli circuiti, i cosiddetti System-In-Package (SiP), riducendo anche le dimensioni, oltre al costo e ai consumi energetici. Molte delle caratteristiche precedentemente descritte risultano di fondamentale im- portanza nelle WSN, in cui sono richieste le seguenti funzionalit`: a • Topologie di rete dinamiche • Instradamento multi-hop • Funzionamento con elevato numero di nodi • Resistenza ai guasti • Auto-organizzazione e self-healing • Lunga autonomia energetica Per quanto riguarda le caratteristiche trasmissive di ZigBee, esso opera nelle frequen- ze radio assegnate per scopi industriali, scientifici e medici (ISM); 868 MHz in Europa, 915 MHz negli Stati Uniti e 2,4 GHz nella maggior parte dei paesi. Per i dettagli riguardo il livello fisico consultare il paragrafo 3.4.1. 3.4 Lo stack ZigBee La specifica ZigBee [Zig06] definisce uno stack protocollare che permette l’interoperabili- t` di dispositivi wireless a basso costo, a bassi consumi energetici e con data rate limitati. a Esso pone le sue basi, per quanto riguarda il livello fisico (PHY) e il livello di accesso al mezzo trasmissivo (MAC), sullo standard per le LR-WPAN IEEE 802.15.4 [IEE06]. In questi primi due strati vengono specificati i parametri fisici di comunicazione e accesso al canale, le primitive di trasmissione/ricezione, una gestione di base dell’autenticazione e della sicurezza.
  • 60.
    Capitolo 3. Lostandard ZigBee 46 Banda Regione geografica Data rate Canali disponibili 868.3 MHz Europa 20 Kbps 0 902-928 MHz Stati Uniti, Australia 40 Kbps 1-10 2.405-2.480 GHz Tutti i paesi 250 Kbps 11-26 Tabella 3.1: Suddivisione della banda ZigBee Diversamente, i livelli superiori definiti dalla ZigBee Alliance, prevedono un livello di rete (NWK), un livello applicazione (APL) e un servizio di sicurezza, detto Security Service Provider (SSP). Nei prossimi paragrafi affronteremo ciascuno di questi strati singolarmente; in figura 3.2 ` possibile osservare in dettaglio lo stack ZigBee completo. e IEEE 802.15.4 Application (APL) Layer defined Application Framework ZigBeeTM Alliance defined ZigBee Device Object End manufacturer ZDO Public (ZDO) defined Application Interfaces Application Object 240 Object 1 Layer function … Layer Endpoint 240 Endpoint 1 Endpoint 0 interface APSDE-SAP APSDE-SAP APSDE-SAP ZDO Management Plane APSME-SAP Application Support Sublayer (APS) ASL Security APS APS Message Reflector Broker Management Security Management Service NLDE-SAP Provider Network (NWK) Layer NLME-SAP (SSP) NWK Security NWK Message Routing Network Management Broker Management Management MLDE-SAP MLME-SAP Medium Access Control (MAC) Layer PD-SAP PLME-SAP Physical (PHY) Layer 2.4 GHz Radio 868/915 MHz Figura 3.2: Lo stack ZigBee completo 3.4.1 Lo strato PHY Come gi` accennato precedentemente, ZigBee opera nella banda di frequenze ISM, che a non necessita di licenza se i dispositivi hanno massima potenza EIRP (potenza equiva- lente irradiata da antenna isotropica) limitata (nell’ordine di qualche mW) e vengono utilizzati all’interno di propriet` private; ne consegue ovviamente che in questa banda si a verificano facilmente interferenze generate da altri apparati che operano sulle medesime frequenze ISM. Per ovviare a tale problema, come vedremo, vengono impiegate tecniche particolari di modulazione e di accesso al mezzo trasmissivo.
  • 61.
    Capitolo 3. Lostandard ZigBee 47 Il gruppo di IEEE 802.15.4 ha previsto due differenti specifiche dello strato PHY, operative in differenti range di frequenze; una specifica a bassa frequenza, che impiega la banda a 868 MHz in Europa e a 915 MHz negli Stati Uniti e in Australia. La seconda specifica ad alta frequenza utilizza invece la banda dei 2.4 GHz, disponibile nella maggior parte dei paesi nel mondo. In tabella 3.1 ` possibile comprendere l’assegnazione e delle frequenze, il numero di canali disponibili e la massime velocit` di trasmissione a raggiungibili. 3.4.1.1 Modulazione e spreading La funzione dello strato PHY ` principalmente quella di trasmettere e ricevere dati e binari, provenienti e destinati, agli strati superiori. Per le due differenti specifiche (868- 915 MHz e 2.4 GHz) vengono utilizzate tecniche di modulazione e spreading differenti, il cui principio di funzionamento ` illustrato in figura 3.3. e 2.4 GHz PHY Convertitore da Convertitore da Modulazione bit a simbolo simbolo a chip O-QPSK DATI SEGNALE BINARI MODULATO Encoder Convertitore Modulazione di erenziale da bit a chip BPSK 868-915 MHz PHY Figura 3.3: Spreading e modulazione in 802.15.4 DSSS e modulazione O-QPSK (2.4 GHz) In questo caso lo stream binario viene suddiviso in nibble, che vengono mappati in se- quenze di 32 bit (dette chip) effettuando uno XOR con sequenze pseudocasuali, anch’esse di 32 bit. Al termine di questa procedura (che prende il nome DSSS - Direct Sequence Spread Spectrum) il segnale occupa pi` banda del necessario, permettendo di condivi- u dere il singolo canale diversi utenti e di resistere maggiormente a fenomeni di jamming. Il chip che arriva al modulatore O-QPSK (Offset Quadrature Phase Shift Keying) viene diviso in due sequenze sfasate di mezzo periodo di chip che vengono modulate separa- tamente (sequenza in fase [I] e in quadratura [Q]); ci` limita le oscillazioni di fase a 90◦ o (rispetto ai 180◦ della normale QPSK) fornendo un inviluppo con meno salti in ampiezza rispetto a QPSK.
  • 62.
    Capitolo 3. Lostandard ZigBee 48 DSSS e modulazione BPSK (868-915 MHz) La sequenza binaria in ingresso all’encoder bit a bit, effettuando uno XOR con il risultato dell’operazione precedente, secondo la seguente equazione: En = Rn ⊕ En−1 dove Rn ` il bit in ingresso allo stadio di encoder differenziale, En−1 ` il risultato dell’o- e e perazione precedente ed En ` il risultato dell’operazione, riferito all’indice n. Successi- e vamente il singolo bit viene espanso con una procedura di spreading in una sequenza di 15 bit, utilizzando un chip a 15 bit (generato in modo pseudocasuale). La sequenza pro- dotta viene poi inviata sul canale wireless utilizzando una modulazione BPSK (Binary Phase Shift Keying) con un impulso a coseno rialzato e fattore di rolloff α = 1. 3.4.1.2 Coesistenza con interferenze Per un dispositivo wireless, operare nelle bande ISM, pu` diventare problematico data o la numerosa presenza di altri apparecchi che utilizzano quelle frequenze. Per ZigBee le potenziali interferenze si presentano a 2.4 GHz, frequenza a cui lavorano anche 802.11 b/g e Bluetooth. In questo interessante articolo [Cro07] ` riportato un esperimento in cui e viene misurato il PER (Packet Error Rate) su una rete ZigBee funzionante in presenza di una Wi-Fi 802.11b attiva; dai risultati si apprende che ZigBee ` abbastanza tollerante e alle interferenze, avendo uno spettro di ampiezza nettamente inferiore a Wi-Fi. Ad ogni modo, durante le fasi di installazione di diverse tecnologie wireless operanti sulla medesima banda, ` bene scegliere canali che siano ortogonali tra loro, come ` possibile e e osservare in figura 3.4. 2.40 2.41 2.42 2.43 2.44 2.45 2.46 2.47 2.48 Figura 3.4: Coesistenza di ZigBee con 802.11
  • 63.
    Capitolo 3. Lostandard ZigBee 49 Nel paragrafo 3.4.2 vedremo come viene regolato l’accesso al mezzo da parte dei pi` u dispositivi che condividono lo stesso canale trasmissivo. 3.4.1.3 Primitive offerte dallo strato PHY Lo strato PHY ha la responsabilit` di fornire le seguenti funzionalit` ai livelli superiori: a a - Attivazione e disattivazione del transceiver - Rilevamento della quantit` di energia sul canale in uso (Energy Detection - ED) a - Misurazione della qualit` del collegamento per tutti i pacchetti ricevuti (Link a Quality Indicator - LQI) - Verifica dell’occupazione del canale (Clear channel assessment - CCA) per realizza- re servizi di CSMA-CA (Carrier Sense Multiple Access with Collision Avoidance) - Selezione della frequenza di trasmissione - Invio e ricezione di dati Come si pu` notare in figura 3.2 la comunicazione tra uno strato dello stack e quelli ad o esso adiacenti ` garantita mediante dei Service Access Point (SAP). Le primitive che e vengono invocate tramite questi SAP possono essere di quattro tipi: Request La primitiva di request ` inviata dallo user-N al layer-N per richiedere che un e servizio sia invocato. Indication La primitiva di indication viene passata dal layer-N allo user-N per indicare un evento interno al layer-N significativo per lo user-N. Questo evento pu` essere o logicamente legato a una request remota o ad un evento interno al layer-N. Response La primitiva di response viene passata dallo user-N al layer-N per completare una procedura precedentemente invocata da una indication. Confirm La primitiva di confirm viene passata dal layer-N allo user-N per comunicare l’esito di una o pi` richieste precedenti. u In particolare ogni strato dello stack ZigBee espone un SAP riservato ai dati e uno alla gestione; ad esempio nel livello PHY troviamo il PD-SAP (PHY Data-SAP) e il PLME-SAP (PHY Layer Management Entity-SAP) (fig. 3.5(b)). Il PLME ha inoltre la responsabilit` di mantenere un database (PIB - PAN Information Base) con le informa- a zioni relative al livello PHY, come ad esempio il canale e la frequenza di trasmissione.
  • 64.
    Capitolo 3. Lostandard ZigBee 50 Indication Request PD-SAP PLME-SAP Service User (user-N) PLME Service Provider (layer-N) PHY layer PHY Service User PIB (user-N) Response Con rm RF-SAP (a) Invocazione di primitive (b) I SAP dello strato PHY Figura 3.5: Organizzazione in SAP di ZigBee 3.4.2 Lo strato MAC Le responsabilit` fondamentali dello strato MAC, come in qualunque altro protocollo a wireless, sono quelle di fornire una comunicazione affidabile tra un nodo e i suoi vicini, cercando di evitare collisioni sul mezzo trasmissivo. Esso ha inoltre la funzione di as- semblare e decomporre i pacchetti dati, in arrivo e un uscita, e di garantire un primo livello di indirizzamento al fine di mantenere la PAN operativa. 3.4.2.1 Tipi di dispositivi IEEE 802.15.4 In IEEE 802.15.4 sono state definite tre tipologie di dispositivi: • Reduced Function Device (RFD) – Ha funzionalit` limitate, per ridurne il costo e la complessit` a a – Utilizzo tipico agli edge della rete – Supporta unicamente la topologia a stella • Full Function Device (FFD) – Supporta tutte le funzioni specificate da 802.15.4 – Ideale per svolgere il ruolo di router e per interconnettere altre tecnologie – Supporta qualsiasi topologia di rete – Pu` sostituire il PANC o • PAN Coordinator (PANC) – Caso particolare di FFD – Si occupa dello startup della rete e dell’assegnazione degli indirizzi – Ha conoscenza globale della rete – Richiede maggiori risorse energetiche e di calcolo
  • 65.
    Capitolo 3. Lostandard ZigBee 51 3.4.2.2 Le modalit` di accesso al canale a Il canale wireless ` condiviso per definizione e per garantirne una corretto utilizzo da par- e te di tutti i dispositivi della rete, devono essere previste particolari politiche di accesso. Lo strato MAC di IEEE 802.15.4 prevede due modalit`: con beacon e senza beacon. a Accesso con beacon In questa modalit` viene utilizzata una struttura a 16 slot denominata superframe, deli- a mitata da beacon che hanno la funzione di identificare la PAN, sincronizzare i dispositivi ad essa collegati e descrivere la struttura del superframe; tra un beacon e l’altro i nodi possono entrare in una modalit` a basso consumo se non hanno dati da trasmettere. a Durante la fase di contesa (Contention Access Period), basata essenzialmente su slotted CSMA-CA, i dispositivi si contendono l’accesso al mezzo per la trasmissione. Per applicazioni in cui ` richiesta bassa latenza, il PANC pu` riservare dei Guaranteed e o Time Slot in cui non ` richiesta la fase di contesa del CSMA-CA (fig. 3.6). e Beacon Beacon CAP CFP GTS GTS GTS GTS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 tempo CAP - Contention Access Period CFP - Contention Free Period GTS - Guaranteed Time Slot Figura 3.6: Accesso al mezzo con beacon Accesso senza beacon Nelle reti senza beacon, viene impiegato esclusivamente CSMA/CA; un dispositivo che vuole tentare di inviare dei dati prima si mette in ascolto sul canale (mediante le primitive di ED definite precedentemente al paragrafo 3.4.1.3) e, se lo trova libero, trasmette. Nel caso in cui il canale ` occupato da un’altra comunicazione, viene attivata una funzione e di backoff che ` sostanzialmente un timer per indicare quando ritentare la ritrasmissione e (fig. 3.7). Per una maggiore affidabilit` ogni messaggio pu` essere confermato dal a o relativo ack, inviato senza bisogno della procedura di ED. Quando la rete ` priva di beacon, i dispositivi tengono i loro ricevitori sempre attivi, e provocando un consumo di energia maggiore. Nella pratica alcuni dispositivi sono co- stantemente pronti a ricevere, mentre altri si limitano a trasmettere in presenza di uno
  • 66.
    Capitolo 3. Lostandard ZigBee 52 stimolo esterno. L’esempio tipico di una rete di questo tipo ` dato dagli interruttori e wireless: il nodo ZigBee nella lampada pu` essere costantemente in ricezione, avendo la o possibilit` della connessione diretta alla rete elettrica, mentre l’interruttore (al pari di a un telecomando) alimentato a batteria pu` rimanere inattivo fino all’istante in cui vi o ` necessit` di mandare un segnale. A quel punto si attiva, invia il comando, riceve un e a segnale di acknowledge e ritorna inattivo. Tale distinzione si rispecchia perfettamente nella differenza tra dispositivi RFD e FFD. Dispositivo A Dispositivo B Veri ca canale Canale occupato Tempo di backo Veri ca Canale canale libero Invio dati Figura 3.7: Accesso al mezzo senza beacon 3.4.2.3 Indirizzamento Il MAC di 802.15.4 possiede due modalit` di indirizzamento a 16 e 64 bit. L’indirizzo a 64 a bit (extended address) ` cablato nel dispositivo e permette di distinguerlo univocamente e da tutti gli altri. La modalit` a 16 bit (short addressing) pu` essere utilizzata all’interno a o della singola PAN e permette di indirizzare fino a 65536 (216 ) dispositivi; ci` consente o di ridurre l’overhead dovuto all’indirizzamento mediante extended address. 3.4.2.4 Primitive offerte dallo strato MAC Lo strato MAC ha la responsabilit` di fornire le seguenti funzionalit` ai livelli superiori: a a - Generare dei beacon se il dispositivo ` un PAN Coordinator e - Supportare la connessione e la disconnessione dalla PAN - Supportare la sicurezza (controllata comunque dai livelli superiori) - Utilizzo di CSMA-CA per accedere al canale - Gestire il meccanismo dei GTS - Fornire un collegamento affidabile tra due peer livello MAC
  • 67.
    Capitolo 3. Lostandard ZigBee 53 Come accadeva nello strato PHY, la comunicazione avviene mediante i SAP riservati ai dati e al controllo (fig. 3.8, il MCPS-SAP (MAC Common Part Sublayer-SAP) e il MLME-SAP (MAC Layer Management Entity-SAP) rispettivamente. Anche in questo caso lo strato conserva un PIB in cui saranno contenuti ad esempio il periodo di beacon, l’extended address e i parametri della funzione di backoff. MCPS-SAP MLME-SAP MLME MAC Common Part Sublayer MAC PIB PD-SAP PLME-SAP Figura 3.8: I SAP dello strato MAC 3.4.3 Lo strato NWK Come accennato precedentemente e come si pu` osservare in figura 3.2, le fondamenta o su cui ZigBee fa affidamento sono lo strato PHY e MAC definiti da IEEE 802.15.4. Alle funzionalit` di questi, esso aggiunge la definizione dello strato di rete (NWK) e dello a strato applicazione (APL). In particolare il primo dei due, del quale ci occuperemo in questo paragrafo, permette di creare delle topologie di rete complesse che vanno oltre quelle disponibili fino allo strato MAC4 . Tale strato si occupa principalmente di: gestire la connessione alla rete di nuovi dispositivi, instradare pacchetti verso destinazioni non direttamente raggiungibili, identificare le route verso nuove destinazioni, assegnare di indirizzi (short address e PAN address) coerenti e infine applicare la sicurezza sui nodi che ne fanno richiesta. 3.4.3.1 Tipi di dispositivi ZigBee Nelle reti ZigBee, i dispositivi ricalcano fedelmente quelli precedentemente descritti nella sezione 3.4.2.1. Anche in questo caso essi si distinguono dalle funzionalit` offerte e, di a conseguenza, dalla complessit`. I possibili dispositivi ZigBee rientrano in una delle a seguenti categorie, con le responsabilit` e funzionalit` elencate: a a • ZigBee Coordinator (ZC) – Startup della rete e decisione del relativo PAN-ID 4 Anche se non specificato esplicitamente, al livello MAC sono disponibili solo due topologie di rete: quella a stella e quella peer-to-peer [IEE06]
  • 68.
    Capitolo 3. Lostandard ZigBee 54 – Permettere ai dispositivi l’entrata e l’uscita (join/leave) dalla rete – Svolgere tutte le funzionalit` di uno ZR a – Ruolo di trust center in una rete con supporto della sicurezza • ZigBee Router (ZR) – Instradare dati per altri dispositivi – Permettere ai dispositivi l’entrata e l’uscita (join/leave) dalla rete – Conservare i messaggi destinati ai suoi ZED – Svolgere opzionalmente tutte le funzioni di uno ZED • ZigBee End Device (ZED) – Possibilit` di funzionare in modalit` risparmio energetico effettuando polling a a – Costo e complessit` limitati, dato che non supporta operazioni relative alla a rete (ad esempio instradamento o join/leave di altri dispositivi) 3.4.3.2 Topologie di rete Per quanto riguarda le topologie di rete, ZigBee permette di definire configurazioni a stella, a cluster-tree e mesh. In ognuna di esse deve essere presente esattamente uno ZC e un qualsiasi numero di ZR e ZED. Tutte le strutture di rete sono basate su una gerarchia genitore-figlio; quando lo ZC effettua lo startup della rete (decidendo il PAN-ID) gli altri dispositivi che effettuano successivamente il join diventano suoi figli, impostando lo ZC come genitore. Ci` ovviamente vale anche per i ZR, che possono essere genitori di ZED o o di altri ZR. Nella gestione delle funzionalit` di rete, i nodi genitori hanno delle specifiche respon- a sabilit`. In alcune configurazioni di rete infatti, gli ZED comunicano solo periodicamente a con essi, per inviare messaggi e verificarne la presenza, dopodich´ possono entrare in mo- e dalit` sleep per il risparmio energetico. Per questo motivo la complessit` di uno ZC o di a a uno ZR, in termini di risorse hardware e software, sar` sicuramente superiore a quella a di uno ZED. Vediamo ora in dettaglio le topologie di rete che Zigbee permette di formare: ` Stella E composta da uno ZC e diversi ZED disposti come in figura 3.9(a). Tutti i messaggi transitano attraverso lo ZC. Cluster-tree La topologia cluster-tree ` formata da uno ZC, uno o pi` ZR e, opzio- e u nalmente, da ZED. Essa estende la struttura a stella, aggiungendo le funzionalit` a dei ZR. Tutti gli scambi dati seguono la gerarchia genitore-figlio; alla ricezione di un messaggio lo ZR verifica se l’indirizzo della sorgente ` un dispositivo ad esso e associato, in caso contrario lo inoltra al suo nodo genitore (fig. 3.9(b)).
  • 69.
    Capitolo 3. Lostandard ZigBee 55 Mesh Questa interessante topologia consente a dispositivi che si trovano nel medesimo range di trasmissivo di comunicare direttamente, a differenza di quello che accade nelle reti cluster-tree. In questo modo se il destinatario ` direttamente connesso, il e messaggio impiegher` un hop, altrimenti esso verr` instradato seguendo il percorso a a deciso dall’algoritmo di routing (fig. 3.9(c)). Occorre specificare che, sebbene lo ZC sia richiesto per avviare la rete, esso non ` necessario per il suo successivo funzionamento (tranne che per la topologia a stella e ovviamente). Questa ` una caratteristica che ritroviamo anche nei ZR e che rappresenta e una delle peculiarit` di ZigBee, ovvero la capacit` di resistere ai guasti organizzandosi a a autonomamente. (a) Topologia a stella (b) Topologia cluster-tree ZigBee Coordinator (802.15.4 PAN Coordinator) ZigBee Router (802.15.4 FFD) ZigBee End Device (802.15.4 RFD o FFD) (c) Topologia mesh Figura 3.9: Topologie di rete ZigBee 3.4.3.3 Algoritmi di routing ZigBee essendo un protocollo per WSN, richiede algoritmi di routing che non generino traffico eccessivo per aggiornare le strutture dati dello strato di rete, come pu` accadere o ad esempio in soluzioni basate su Distance Vector e Link State [PD03]. Risulta necessario pertanto riferirsi a classi di algoritmi di routing dedicati alle MANet (Mobile Ad Hoc Network). Nello strato NWK ZigBee vengono impiegati sostanzialmente algoritmi gerarchici con qualche ottimizzazione sulle tabelle di instradamento quando possibile. In particolare vengono utilizzati:
  • 70.
    Capitolo 3. Lostandard ZigBee 56 1. Ad Hoc On Demand Distance Vector (AODV) 2. Motorola Cluster-Tree algorithm descritti ampiamente in [Lan03, Per03, Erg04]. 3.4.3.4 Sicurezza Come ` possibile osservare in figura 3.2, ZigBee offre anche meccanismi di sicurezza, e gestiti dal livello SSP. Tali meccanismi sono basati su un algoritmo AES a 128 bit, aggiungendo alle funzionalit` di base offerte dal MAC, servizi per la scelta delle chiavi a e il loro trasporto, la gestione dei dispositivi e la protezione dei frame. La gestione ` e affidata ad un trust center che si occupa principalmente di: • Autenticare i dispositivi possono accedere alla rete • Aggiornare periodicamente le chiavi di rete • Abilitare la sicurezza end-to-end tra dispositivi Di solito queste responsabilit` sono affidate al coordinatore o comunque ad un dispo- a sitivo con maggiori risorse di calcolo. Ovviamente, in ambienti in cui la sicurezza non ` fondamentale (come ad esempio nel monitoraggio nell’agricoltura di precisione), tali e servizi vengono disattivati per aumentare l’autonomia energetica e le prestazioni della rete. Per maggiori dettagli sui meccanismi di sicurezza si consulti [Zig06]. 3.4.3.5 Primitive offerte dallo strato NWK Lo strato NWK ha la responsabilit` di fornire le seguenti funzionalit` ai livelli superiori: a a - Applicare gli algoritmi di routing idonei alla topologia di rete utilizzata - Capacit` di garantire l’autenticit` e la confidenzialit` delle trasmissioni a a a - Creazione di una nuova rete (ZC) - Gestire la connessione e disconnessione (join/leave) a reti esistenti (ZR,ZED) - Assegnazione di indirizzi ai nuovi dispositivi - Conoscenza dei dispositivi nel proprio raggio trasmissivo (neighborhood ) - Possibilit` di scoprire nuove route (route discovery) a La comunicazione del NWK con gli strati superiori avviene mediante due SAP, il NLME- SAP (Network Layer Management Entity-SAP) e il NLDE-SAP (Network Layer Data Entity-SAP) (fig. 3.10). Mediante il primo vengono gestite tutte le primitive di ricerca
  • 71.
    Capitolo 3. Lostandard ZigBee 57 di reti, join/leave e route discovery. Il NLDE-SAP invece permette l’invio e la ricezione di dati in tutte i nodi della rete, sfruttando gli algoritmi di instradamento. Anche in questo caso lo strato conserva un IB in cui saranno contenuti ad esempio l’indirizzo di rete(short address), le tabelle di instradamento, le tabelle dei vicini e i parametri relativi alla sicurezza. NLDE-SAP NLME-SAP NLME NLDE NWK IB MCPS-SAP MLME-SAP Figura 3.10: I SAP dello strato NWK 3.4.4 Lo strato applicazione Lo strato di applicazione (APL) di ZigBee ` formato dai sottostrati APS (Application e support Sublayer) e ZDO (ZigBee Device Object) e dalle applicazioni vere e proprie (Application Object - AO), definite dagli utenti finali. Le responsabilit` di APS inclu- a dono il mantenimento delle tabelle di binding (che permette di far corrispondere due dispositivi in base ai servizi offerti e richiesti) e lo scambio di messaggi tra due disposi- tivi con binding. In figura 3.11 ` possibile comprendere meglio tale concetto: in questo e caso l’interruttore 1 ` in binding con le lampade (1,2,3), mentre l’interruttore 2 solo con e la lampada 4. Tale funzionalit` ` di ausilio anche nell’indirizzamento, in quanto con a e una singola operazione ` possibile inviare messaggi a categorie di dispositivi specifici e (ad esempio l’invio del comando di accensione a tutte le lampade in binding con uno specifico interruttore). Radio Lamp 1 Lamp 2 Lamp 3 Lamp 4 Radio Switch 1 Switch 2 Figura 3.11: Concetto di binding
  • 72.
    Capitolo 3. Lostandard ZigBee 58 Lo ZDO si occupa invece di definire i ruoli dei dispositivi all’interno della rete (ZC,ZR o ZED), eseguire discovery dei nodi, ottenendo informazioni sui servizi applicativi offerti e gestire le richieste di binding. Da un punto di vista applicativo, lo ZDO ` l’interfaccia e che hanno gli AO verso lo stack ZigBee. Su un dispositivo ZigBee possono essere caricate fino a 240 applicazioni (AO) dif- ferenti, ognuna in esecuzione su un endpoint differente. Gli endpoint possono essere paragonati al concetto di porta TCP e permettono ad altri dispositivi di comunicare con le singole applicazioni. Per esempio, un controllo a distanza potrebbe impiegare l’endpoint 1 per controllare le luci in cucina, l’endpoint 2 per gestire l’impianto di con- dizionamento in camera da letto e l’endpoint 3 per controllare il sistema di sicurezza dell’abitazione. Come ` possibile osservare in figura 3.2, lo ZDO stesso ` considerato un e e AO, in esecuzione sull’endpoint 0. Application Profile Concludiamo questa panoramica sullo stack ZigBee parlando degli Application Profile, un insieme di specifiche che descrive il comportamento di una particolare applicazione distribuita. Esso definisce l’insieme dei dispositivi impiegati e il formato dei messaggi (cluster ) scambiati tra di essi. Ad esempio, esistono dei profili standard per l’Home Automation e il controllo industriale, definiti ed approvati dalla ZigBee Alliance. Esistono due tipi di application profile: • Application profile pubblici: applicazioni interoperabili approvate dalla ZigBee Alliance mirate a risolvere uno specifico problema. • Application profile privati: definiti dai singoli produttori per interagire con i loro dispositivi ZigBee. I dispositivi nell’ambito del medesimo profilo possono comunicare tra loro per mezzo di cluster, che rappresentano il formato dei possibili messaggi di input o di output. Per esempio nel profilo dell’Home Automation esiste un cluster dedicato all’impostazione delle temperature di soglia di un termostato.
  • 73.
  • 74.
    Capitolo 4 Analisi dellaqualit` del segnale in a ambienti indoor/outdoor Come abbiamo visto al Capitolo 3, a seguito di un periodo di studio delle varie soluzioni orientate alle WSN, la scelta ` stata indirizzata verso lo standard ZigBee e la piattaforma e proposta da Freescale, per la cui descrizione approfondita si rimanda al paragrafo 4.1. La prima esigenza dopo aver selezionato la piattaforma hardware, ` stata senz’altro e quella di analizzarne il suo comportamento durante le trasmissioni, al fine di determi- narne l’idoneit` alla realizzazione di un sistema di localizzazione. La grande quantit` di a a dati raccolti ci ha permesso, non solo di verificare in parte alcuni concetti teorici sulle trasmissioni wireless, ma anche di definire gradualmente il problema reale che volevamo risolvere. Come vedremo nelle sezioni 4.2 e 4.3, i test effettuati ricalcano abbastanza fedelmente quanto affermato al Capitolo 2 sulla propagazione delle onde radio in ambienti outdoor e indoor; nella prima condizione possiamo stimare la perdita di potenza da parte del segnale trasmesso utilizzando l’equazione di Friis (eq. 2.2), mentre nella seconda condi- zione, anche utilizzando i modelli di attenuazione indoor (par. 2.2), non ` semplice far e risultare tali approssimazioni, a meno di tuning onerosi in termini di tempo sui parame- tri e comunque limitandone la correttezza ad un particolare tipo di ambiente. Nel resto del capitolo verranno affrontate anche analisi relative alle prestazioni delle antenne e al comportamento dei dispositivi in movimento, trasportati ad esempio da robot mobili. Tutte le misurazioni effettuate per la potenza del segnale ricevuto verranno espresse in unit` LQI (Link Quality Indicator) e a volte ci si riferir` indifferentemente alla qua- a a lit` o alla potenza del segnale ricevuto; per una spiegazione dettagliata al riguardo, si a rimanda al paragrafo 4.1.4. 60
  • 75.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 61 4.1 La piattaforma hardware/software di riferimento 4.1.1 Hardware La piattaforma utilizzata durante tutto il periodo di tesi ` quella di Freescale, uno dei e maggiori produttori di semiconduttori a livello mondiale e membro di ZigBee Alliance. ` E stato possibile acquistare dei kit di valutazione, avendo a disposizione un buon numero di nodi e tutto l’occorrente per effettuare i test necessari. Ogni nodo contiene un transceiver basato sul SiP MC13213 [Sem07b, Sem07a], com- pliant con lo standard IEEE 802.15.4 e con la specifica ZigBee 2006, funzionante alle frequenze ISM a 2.4 GHz, con un potenza di trasmissione regolabile tra 3 dBm e -15 dBm e una sensibilit` in ricezione di -95 dBm. All’interno dell’MC13213 ` presente un a e microcontrollore (Microcontroller Unit - MCU) della famiglia HCS08 a 40 MHz, con 60 KB di memoria flash e 4 KB di memoria RAM, che permette di avere contemporanea- mente sullo stesso SiP sia lo stack per le comunicazioni che quello per le applicazioni. In figura 4.1 ` possibile osservare un dettaglio della Sensor Reference Board (SRB), la e scheda su cui sono installati il SiP MC13123, la memoria flash, il circuito di ricezione, le interfacce I/O e i sensori. Questa scheda, insieme alla NCB (Network Coordinator Board)1 , viene fornita nei kit di valutazione e permette di testare in modo immediato le potenzialit` di ZigBee. Spesso l’utente finale pu` essere interessato solo alle funzionalit` a o a di comunicazione di queste schede e pu` decidere, in base alle proprie esigenze2 , come o progettare un nuovo tipo di scheda basata sul chip MC13213. A livello di interfacce General purpose Interfaccia BDM I/O Sensore temperatura Accelerometro XYZ Interfaccia USB MC13213 Transceiver Buzzer Alimentazione Memoria ash esterna LED Interruttore ON/OFF Tasti funzione Figura 4.1: La Sensor Reference Board (SRB) basata sul SiP MC13213 di Freescale 1` E una scheda con le stesse funzionalit` della SRB, ma fornisce in aggiunta un display LCD a due a linee e l’interfaccia RS232 2 Ad esempio necessita di un diverso circuito di ricezione per aumentare la portata trasmissiva e non ha bisogno dei sensori, per ridurre consumi e dimensioni
  • 76.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 62 di comunicazione, esso supporta due porte seriali (Serial Communications Interface - SCI), sia RS232 (presente solo sulla NCB) che USB, per il collegamento ad unit` di a ` elaborazione mediante UART. E possibile inoltre far comunicare il nodo con dispositivi esterni (ad esempio particolari sensori) mediante le porte GPIO (General Purpose I/O), costruendo appositi circuiti di interfaccia. Sulla SRB sono presenti inoltre un sensore di temperatura (LM61B della National Semiconductors), un accelerometro a tre assi (MMA7260Q di Freescale) e un buzzer audio. Essa richiede una tensione di alimentazione di 3.3 V, che pu` essere fornita me- o diante due batterie AA, l’interfaccia USB o l’alimentatore esterno. Per quanto riguarda i consumi, la MCU ha delle modalit` di power-saving, anche se essi dipendono fortemente a dal numero di sensori utilizzati e soprattutto dalla frequenza delle trasmissioni dati; con le sole batterie comunque, il dispositivo pu` avere un’autonomia di oltre un anno. o 4.1.1.1 Antenna La progettazione di una antenna ` un fattore critico per ottenere un buon range trasmis- e sivo e un throughput stabile in una applicazione wireless. Questo ` vero specialmente e in dispositivi a bassa potenza e di dimensioni ridotte come quelli considerati, dove lo spazio riservato all’antenna ` inferiore a quello ideale. e La struttura dell’antenna dovrebbe avere dimensioni ragionevoli rispetto alla lunghez- za d’onda del campo elettromagnetico. Una dimensione naturale ` ad esempio met` della e a lunghezza d’onda; a 2.4 GHz equivale a circa 6 cm e permette di lavorare alla frequenza di risonanza. Scendere sotto questa frequenza pu` causare una bassa efficienza. o Nel nostro caso, lo spazio sulla scheda permette di avere una antenna di un quarto della lunghezza d’onda con struttura a monopolo, in cui una met` ` formata dal filo a e vero e proprio e l’altra dal piano di massa3 . In particolare, sia la SRB che la NCB, montano una F-Antenna [Sem06] che ` possibile osservare in figura 4.2. Questo tipo e di antenna ` utilizzata ampiamente, data la sua compattezza, un pattern di radiazione e quasi omnidirezionale e una buona efficienza. Ovviamente le sue ridotte dimensioni portano a performance minori (in termini di guadagno e range trasmissivi) e non sempre questo ` accettabile; tuttavia, nei test affrontati, le prestazioni sono risultate adeguate. e In particolare, nei primi esperimenti di trasmissione, abbiamo rilevato un range tra- smissivo massimo di circa 100 m, in condizioni di LOS e con potenza in trasmissione di 0 dBm, ottenendo un Packet Error Rate (PER) del 5% su 1000 pacchetti da 20 byte invia- ti. Per quanto riguarda il pattern di radiazione, esso appare abbastanza uniforme come ` mostrato in figura 4.2(c); come vedremo ci` risulter` efficace in situazioni di mobilit` e o a a dei dispositivi. Al paragrafo 4.1.2 sono riportati alcuni test riguardo l’orientamento delle antenne. 3 Costituito ad esempio da rimanenze tra i collegamenti sul circuito stampato, come collegamenti di massa e alimentazione.
  • 77.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 63 Conduttore Circuito stampato Piano di massa (a) Struttura di una F-Antenna (b) Particolare dell’F-Antenna montata sulla SRB 5 0 -5 -10 -15 -20 Polarizzazione verticale (dBi) -25 Polarizzazione orizzontale (dBi) -30 (c) Diagramma di radiazione [Sem06] Figura 4.2: Struttura ad F-Antenna 4.1.2 Test di orientamento dell’antenna Per verificare empiricamente il pattern di radiazione dell’antenna, trasmettitore e ri- cevitore sono stati posti alla distanza di due metri, ad un’altezza di 50 cm dal suolo e variando l’orientamento del ricevitore ad ogni ripetizione, come ` possibile osservare nella e figura 4.3. I valori riportati sono ottenuti mediando il valore del Link Quality Indicator (par. 4.1.4) su 100 pacchetti ricevuti. Dai risultati ottenuti, le antenne dei dispositi- vi sembrano avere un pattern abbastanza uniforme in tutte le direzioni, soprattutto se mantenuti in posizione orizzontale. 4.1.3 Software Il kit di sviluppo impiegato include tre tipi di stack protocollari, con cui ` possibile e sviluppare applicazioni a differente livello di complessit`: a ` Simple MAC (SMAC) E uno stack proprietario di Freescale e pu` essere utilizzato o per implementare semplici reti di tipo punto-punto e a stella. Data la sua sem- plicit` ` stato impiegato nelle fasi preliminari, per testare alcune caratteristiche a e trasmissive dei dispositivi.
  • 78.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 64 Figura 4.3: Test di orientamento dell’antenna ` IEEE 802.15.4 E lo stack che segue lo standard per le LR-WPAN IEEE 802.15.4 e permette realizzare applicazioni su reti a stella e mesh (con tutti i dispositivi nello stesso raggio trasmissivo). ZigBee 2006 Include tutte le caratteristiche descritte al capitolo 3 per quanto riguarda routing, sicurezza e livello applicazione. La programmazione dei dispositivi ` in linguaggio C, mediante l’IDE Codewarrior per e la MCU HCS08; una volta generato l’eseguibile esso viene caricato sulla flash mediante un apposito programmatore collegato all’interfaccia BDM (Background Debug Module) (fig. 4.1), che permette anche di eseguire il debug direttamente sul dispositivo. In ausilio al progettista, ` presente inoltre un software (BeeKit) che consente principalmente di e creare applicazioni da template, impostare i numerosi parametri presenti negli stack protocollari e successivamente esportare il progetto sotto forma di file XML, per le fasi di programmazione, compilazione e debugging in Codewarrior. 4.1.4 Link Quality Indicator (LQI) Come indicato nello standard IEEE 802.15.4, la misura del LQI ` una caratterizzazione e della potenza e/o della qualit` del segnale, durante la ricezione di un pacchetto. Questa a funzionalit` viene offerta dallo strato PHY (par. 3.4.1.3) e pu` essere implementata a o impiegando le primitive di ED, una stima del rapporto segnale-rumore (SNR) o una combinazione dei due. Tale misurazione viene effettuata su ogni pacchetto ricevuto,
  • 79.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 65 inserita nelle strutture dati di livello MAC ed espressa come un intero compreso tra 0x00 (0) e 0xFF (255). Il valore minimo e massimo di LQI (0x00 e 0xFF) sono associati con la minima e la massima qualit` del segnale avvertibile dal ricevitore e tutti i valori a compresi sono uniformemente compresi fra questi due limiti. Nel caso dei dispositivi utilizzati, il LQI ` direttamente correlato alla potenza del e segnale ricevuto (RSS), tramite la seguente funzione di conversione: 13 · (190 + 2 · RSS) LQI = , (4.1) 8 in cui RSS ` espresso in dBm. Come ` facile verificare con facili calcoli, dato che il RSS e e oscilla tra -18 dBm e -95 dBm (massima sensibilit` in ricezione), otterremo 0 e 255 come a valori minimo e massimo per il LQI. 4.2 Rilevazioni outdoor La prima fase di esperimenti di trasmissione ha avuto lo scopo di verificare il compor- tamento dei dispositivi, al variare della distanza tra trasmettitore e ricevitore, in primo luogo per trovare una qualche relazione matematica fra potenza del segnale in ricezione e distanza. Per la parte outdoor il setup ` quello riportato in figura 4.4; i nodi trasmettitore e e ricevitore sono in condizioni di LOS, posizionati staticamente a 50 cm dal suolo e con le antenne orientate nel verso di trasmissione. Le misurazioni della potenza del segnale ricevuto sono state effettuate inviando ciclicamente un pacchetto ogni 300 ms per un totale di 100 pacchetti ogni posizione, campionando una distanza di 20 m a step di 2 m. Tali test sono stati successivamente ripetuti per 20 volte, in luoghi, giorni e orari differenti. In tutti i casi, la potenza di trasmissione, ` stata lasciata al valore di default e (0 dBm). Dopo la fase di rilevazione dei dati (consultabili integralmente al paragrafo Figura 4.4: Setup per i test outdoor
  • 80.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 66 4.2.1) ` stato utile utilizzare degli strumenti statistici, per rappresentare sinteticamente e i risultati ottenuti. In figura 4.5 ` possibile osservare media e varianza delle differenti e osservazioni, per ogni distanza tra 1 e 20 metri. Per quanto riguarda l’andamento della media, come ci si pu` aspettare, essa decresce all’aumentare della distanza, sebbene o intorno ai 4 m ` abbastanza evidente uno strano picco, dovuto forse a una non linearit` e a nelle funzioni di ED o nel circuito di ricezione (vedere appendice A al riguardo). Dal grafico della varianza si comprende invece quanto sia minore la dispersione per distanze inferiori ai 10 m (escludendo la distanza di 4 m), a causa dell’azione pi` intensa dei u fenomeni fisici come multipath e scattering (par. 2.1). Distance vs. LQI (20 observations) 180 Average LQI 160 140 LQI 120 100 80 60 0 2 4 6 8 10 12 14 16 18 20 Distance (m) Distance vs. LQI variance 250 200 150 Variance 100 50 0 1 2 4 6 8 10 12 14 16 18 20 Distance (m) Figura 4.5: Andamento del LQI con la distanza (media e varianza) Nonostante questa irregolarit` nei valori, un risultato interessante ` stato quello di a e poter effettivamente verificare l’equazione 2.3 per il path-loss; impostando un sistema sovradimensionato sui dati a disposizione e risolvendo ai minimi quadrati (con d0 = 1 m e P0 = −42.11 dBm) si ottiene la soluzione np = 1.7018, ovvero np ≈ 2 come nelle condizioni di spazio libero. Questo era abbastanza prevedibile, considerate le condizioni di LoS in cui i test sono stati realizzati. In figura 4.6 inoltre, ` facile notare come e l’andamento del LQI sulla singola distanza sia quasi gaussiano, a dimostrazione di una discreta regolarit` nei valori riportati. a
  • 81.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 67 Distance: 1 m - Mean: 171.875 - Var: 29.5321 Distance: 2 m - Mean: 157.6685 - Var: 92.3393 Distance: 4 m - Mean: 124.8035 - Var: 234.6002 1 1 1 Pr(LQI interval) Pr(LQI interval) Pr(LQI interval) 0.5 0.5 0.5 0 0 0 0 50 100 150 200 250 0 50 100 150 200 250 0 50 100 150 200 250 LQI interval LQI interval LQI interval Distance: 6 m - Mean: 137.5575 - Var: 66.2705 Distance: 8 m - Mean: 130.837 - Var: 46.6909 Distance: 10 m - Mean: 119.0145 - Var: 133.8778 1 1 1 Pr(LQI interval) Pr(LQI interval) Pr(LQI interval) 0.5 0.5 0.5 0 0 0 0 50 100 150 200 250 0 50 100 150 200 250 0 50 100 150 200 250 LQI interval LQI interval LQI interval Distance: 12 m - Mean: 115.529 - Var: 112.2837 Distance: 14 m - Mean: 106.6565 - Var: 114.4652 Distance: 16 m - Mean: 100.2205 - Var: 85.102 1 1 1 Pr(LQI interval) Pr(LQI interval) Pr(LQI interval) 0.5 0.5 0.5 0 0 0 0 50 100 150 200 250 0 50 100 150 200 250 0 50 100 150 200 250 LQI interval LQI interval LQI interval Distance: 18 m - Mean: 92.8835 - Var: 122.4617 Distance: 20 m - Mean: 90.25 - Var: 138.4326 1 1 Pr(LQI interval) Pr(LQI interval) 0.5 0.5 0 0 0 50 100 150 200 250 0 50 100 150 200 250 LQI interval LQI interval Figura 4.6: Distribuzione dei valori del LQI per ogni intervallo 4.2.1 Dati numerici rilevati I seguenti dati sono stati rilevati utilizzando la configurazione descritta al paragrafo 4.2, configurando due nodi ZigBee, uno come trasmettitore e uno come ricevitore. Il LQI medio ` calcolato mediando su 100 pacchetti ricevuti. Nel caso in cui il luogo e LQI medio rilevato alla distanza (m) Data Luogo 1 2 4 6 8 10 12 14 16 18 20 07/12/07 15.00 Campagna 164.16 147.06 141.42 131.02 124.54 110.86 106.08 96.5 99.44 84.2 75.94 07/12/07 15:30 Campagna 159.64 151.9 119.64 122.28 120.76 95.74 105.58 91.4 76.28 69.54 85.52 10/12/07 14:30 Viale 172.83 160.18 126.55 139.22 125.73 114.3 101.85 102.96 96.1 96.57 65.79 10/12/07 15:00 Viale 168.77 170.06 116.1 138.71 125.89 113.85 110.85 105.48 81.36 68.53 87.3 10/12/07 15:30 Viale* 162.42 158.14 116.93 127.95 121.55 86.44 84.34 96.85 106.91 94.1 81.91 11/12/07 15:00 Urbano 173.65 147.57 102.61 132.6 133 120.42 112.34 100.48 94.71 94.89 84.16 11/12/07 15:15 Urbano 178.51 149.69 120.69 146.59 124.42 126.02 122.22 114.1 112.6 92.2 100.2 11/12/07 15:30 Urbano 178.77 157.12 110 145.26 137.75 125.51 126.87 112.36 104.14 109.95 110.28 11/12/07 15:45 Urbano 174.83 149.81 105.44 133.85 133.97 125.42 117.24 102.59 100.34 90.51 73.36 11/12/07 16:00 Urbano* 175.04 143.02 112.1 135.22 129.46 112.42 114.26 105.38 95.04 96.61 99.51 19/12/07 16:00 Viale 175.12 162.02 142.79 149.89 126.2 121.54 125.12 119.35 100.89 80.7 88.27 19/12/07 16:15 Viale* 164.66 166.45 151.39 145.58 133.1 124.39 124.72 113.87 103.95 88 96.06 19/12/07 16:30 Campagna 171.02 165.79 136.95 140.16 135.95 127.64 121.31 114.66 111.75 104.43 98.14 31/03/08 16:30 Viale 175.96 166.25 132.62 135.82 141.67 126.01 107.63 78.15 99.25 103.88 101.58 31/03/08 16:45 Viale* 175.72 165.94 124.01 124.25 143.07 128.37 120.7 119.78 114.72 100.17 108 31/03/08 17:00 Viale 171.16 164.93 128.5 143.79 136.15 129.1 118.85 118.3 100.22 105.23 94.08 31/03/08 17:15 Viale* 175.25 173.59 149 147 133.9 132.88 126 115.6 100.44 103.34 98.76 31/03/08 17:45 Campagna 172.83 148.81 101.44 130.85 138.97 123.42 119.24 105.59 102.34 93.51 78.36 31/03/08 18:00 Campagna* 170.04 141.02 116.1 133.22 128.46 111.42 118.26 103.38 98.04 94.61 93.51 31/03/08 18:15 Campagna 177.12 164.02 141.79 147.89 122.2 124.54 127.12 116.35 105.89 86.7 84.27 Tabella 4.1: Misurazioni LQI in ambienti outdoor della misurazione ` contrassegnato da un asterisco, la misurazione ` stata effettuata in e e maniera simmetrica, invertendo la posizione di trasmettitore e ricevitore.
  • 82.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 68 4.3 Rilevazioni indoor Nella seconda parte di test, realizzati in ambienti indoor, l’interesse ` stato rivolto a e capire come sfruttare le informazioni relative alla qualit` del segnale. In questo ca- a so, trasformare la potenza del segnale ricevuto in una distanza, al fine di realizzare un qualche metodo di localizzazione range-based, ` sembrato quasi immediatamente e un procedimento poco realistico e comunque gi` affrontato ampiamente in letteratura a [SKOM06, BP00, BGGT07], con risultati poco brillanti. Anche i modelli di propagazione indoor, descritti al paragrafo 2.2, non risultano particolarmente utili in quanto troppo dipendenti dallo specifico ambiente in cui, empi- ricamente, vengono ricavati i diversi parametri, richiedendo una fase di tuning eccessi- vamente complessa. Inoltre, anche dopo aver prodotto un modello abbastanza preciso, ogni minima perturbazione nell’ambiente, come passaggio di persone, apertura o chiu- sura di porte, pu` seriamente compromettere le misurazioni della qualit` del segnale, e o a di conseguenza il processo di localizzazione. 4.3.1 Test statici In prima istanza, la sperimentazione ha previsto uno scenario statico, in cui un nodo trasmettitore viene mantenuto fisso e un altro ricevitore viene spostato in posizioni ben determinate, al fine di stilare una specie di mappa del segnale dell’ambiente. Anche in questo caso, si trovano alla medesima altezza (50 cm), senza considerare importan- te l’orientamento delle antenne. Le rilevazioni sono state effettuate principalmente in una abitazione e al Dipartimento di Informatica e Sistemistica (DIS), ed ` possibile e consultare integralmente i dati rilevati al paragrafo 4.3.4. Come esempio di riferimento consideriamo la figura 4.7, in cui ` presente la pianta dell’abitazione, i punti in cui sono e state fatte le rilevazioni, il valore LQI medio in quella posizione e l’icona del dispositivo rappresenta il trasmettitore. Quello che risulta immediatamente ` l’impossibilit` di rica- e a vare direttamente informazioni sulla distanza, a partire dal LQI: ad esempio la posizione a ` pi` vicina a b ma presenta LQI minore. Ci` ` dovuto ovviamente all’attenuazione e u oe provocata dalla struttura e dagli altri fenomeni fisici della propagazione del segnale. Sebbene non sia possibile trasformare direttamente il LQI in una distanza, se con- sideriamo globalmente tutti i valori, essi forniscono una buona indicazione di quanto i nodi siano vicini: i valori della stanza in cui ` presente il trasmettitore sono nettamente e maggiori rispetto ai valori delle altre stanze. 4.3.2 Test dinamici L’ultima fase di test, rispetto alle altre, ha previsto la sperimentazione di trasmissioni in condizioni di mobilit`. A questo scopo ` stato previsto l’utilizzo dei robot mobili su ruote a e
  • 83.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 69 Figura 4.7: Posizioni e rilevazioni di LQI nell’abitazione 4 8 5 I E C D 7 H 6 F G 2 A 3 1 B (a) Configurazione per il test (b) Percorsi seguiti dal robot Figura 4.8: Test dinamici
  • 84.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 70 disponibili nel laboratorio SIED, descritti al paragrafo 1.2.1. La sperimentazione ` stata e eseguita mettendo un nodo trasmettitore fisso in un punto del laboratorio e installando il nodo ricevitore sul robot, telecomandando quest’ultimo in modo da seguire dei path pre- stabiliti (fig. 4.8(b)), durante il quale venivano scambiati pacchetti per estrarre il LQI. In questa modalit` ` stato possibile valutare il comportamento dei dispositivi in movi- ae mento, in particolare le variazioni del LQI durante l’avvicinamento o l’allontanamento del ricevitore. In figura 4.9 sono state rappresentate, per tutti i path seguiti dal robot, le rispettive misurazioni del LQI (in blu) e le funzioni di fitting polinomiali calcolate su di esse (in rosso); osservando i dati grezzi del LQI si notano ovviamente degli outlier, causati da variazioni rapide della potenza del segnale ricevuto e dovuti principalmente a fenomeni di fast fading. Utilizzando le funzioni di fitting invece, l’andamento appare pi` evidente; ad esempio nel segmento E ` chiaro che il ricevitore si sta avvicinando al u e trasmettitore, mentre nel segmento A esso si avvicina per poi allontanarsi. Segment: A Segment: B Segment: C 200 200 200 150 150 150 LQI LQI LQI 100 100 100 50 50 50 0 50 100 0 50 100 0 50 100 Packet number Packet number Packet number Segment: D Segment: E Segment: F 200 200 200 150 150 150 LQI LQI LQI 100 100 100 50 50 50 0 50 100 0 50 100 0 50 100 Packet number Packet number Packet number Segment: G Segment: H Segment: I 200 200 200 150 150 150 LQI LQI LQI 100 100 100 50 50 50 0 50 100 0 50 100 0 50 100 Packet number Packet number Packet number Figura 4.9: Risultati dei test dinamici 4.3.3 Conclusioni Come nei test precedenti, i risultati ricavati, non hanno una validit` generale ma se a combinati opportunamente possono fornire delle indicazioni interessanti sui nodi. Ci` o
  • 85.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 71 che appare evidente, almeno indoor, ` la difficolt` di realizzare un sistema di localiz- e a zazione range-based che sfrutti esclusivamente le informazioni estratte dalla qualit` del a segnale ricevuto. Come abbiamo visto anche al paragrafo 2.4.3, sono molteplici i fatto- ri che possono influenzare le misurazioni, provocando una stima della posizione molto imprecisa. Inoltre, durante la mia permanenza all’RFID-Lab, mi ` stato possibile assistere ad e alcune sperimentazioni da loro effettuate sul Location Engine della Texas Instrumen- ts [Aam06], presente sui dispositivi con SoC (System-on-chip) CC2431: i risultati in- door, sebbene considerando un alto numero di nodi beacon, non sono stati incoraggianti, presentando alti errori di localizzazione. Per questi ed altri motivi, come si vedr` al capitolo 5, l’informazione estratta dal LQI a non verr` utilizzata per realizzare un vero e proprio sistema di localizzazione, ma sar` a a sfruttata ampiamente per guidare l’esplorazione da parte di robot mobili in ambienti semistrutturati. 4.3.4 Dati numerici rilevati Le rilevazioni indoor sono state effettuate in due ambienti differenti: un’abitazione e il 1◦ piano del Dipartimento di Informatica e Sistemistica. La configurazione dei test ` e descritta al paragrafo 4.3. Abitazione In figura 4.7 ` illustrata la pianta dell’abitazione dove sono state fatte le rilevazioni. e Per interpretare correttamente i dati riportati in tabella 4.2, occorre considerare esclu- sivamente le lettere, relative alle diverse locazioni dove il ricevitore ` stato posizionato, e mentre l’icona del dispositivo rappresenta la posizione del trasmettitore (mantenuto fis- so). Ogni valore LQI ` ottenuto effettuando una media su 100 pacchetti ricevuti nella e singola posizione, mantenendo i due dispositivi ad un’altezza dal suolo di 50 cm. LQI in posizione Data a b c d e f g h i l m n o p q r s t u 17/12/07 77.39 66.62 46.62 69.83 115.83 91.8 54.31 65.77 69.94 26.52 83.62 30.83 72.04 77.14 66 82.65 108.44 125.44 107.59 20/12/07 69.04 100.16 47.66 59.12 95.39 70.97 92.12 48.41 72.25 40.08 70.62 16.22 68.83 81.93 82.16 51.22 145.27 157.58 156.41 22/12/07 63.78 98.75 44.12 65.50 112.98 85.72 88.96 49.66 70.07 33.62 76.79 30.25 69.46 78.19 84.25 69.03 148.93 148.38 155.67 Tabella 4.2: Misurazioni LQI in una abitazione Dipartimento di Informatica e Sistemistica (1◦ Piano) Anche in questo caso, le rilevazioni sono state effettuate nella stessa modalit` dell’a- a bitazione, ma ` stato possibile eseguirle una singola volta. Per semplicit` i valori sono e a riportati direttamente sulla pianta di figura 4.10, dove l’icona del dispositivo rappresenta
  • 86.
    Capitolo 4. Analisidella qualit` del segnale in ambienti indoor/outdoor a 72 la posizione del trasmettitore (mantenuto fisso) e le lettere la posizione del ricevitore, spostato ad ogni rilevazione. Ogni valore LQI ` ottenuto effettuando una media su 100 e pacchetti ricevuti nella singola posizione. Figura 4.10: Posizioni e valori delle rilevazioni LQI al DIS
  • 87.
    Capitolo 5 Esplorazione guidatadalla qualit` a del segnale In questo capitolo viene descritta l’idea predominante di questo lavoro di tesi: le in- formazioni sulla qualit` del segnale provenienti dai nodi ZigBee vengono utilizzate per a aiutare l’esplorazione di ambienti sconosciuti per mezzo di robot mobili. Dopo la fase di studio dei metodi di localizzazione wireless-based (cap. 2) e l’analisi sulla qualit` del a segnale (cap. 4), l’obiettivo del lavoro ` evoluto, perdendo le sembianze di un vero e e proprio sistema di localizzazione di supporto per robot. Dai risultati conseguiti nelle sperimentazioni, si evincono le complessit` a cui si va a incontro nel realizzare un sistema di localizzazione basato sulla potenza del segnale ricevuto1 . Le problematiche maggiori si incontrano soprattutto indoor, dato che tale grandezza fisica non pu` essere facilmente relazionata alla distanza e ci` ostacola non o o poco l’applicazione di metodologie range-based. A dir la verit`, sistemi basati sul RSS a fingerprinting come Radar [BP00] o MoteTrack [LW04], hanno dimostrato una discreta precisione, a discapito di tempi di setup onerosi e dipendenza diretta dall’ambiente in cui vengono impiegati. Gli approcci range-free appaiono senz’altro validi, ma con considerevoli limitazioni, dovute soprattutto alle topologie di rete e alla densit` di nodi a richieste, non applicabili nei nostri scenari di interesse. Inizialmente, questo lavoro di tesi, era partito con l’intento di elaborare e sperimen- tare, un sistema di localizzazione che traesse giovamento dall’impiego di tecnologie per WSN, risultando di notevole interesse nel campo della robotica mobile, ad esempio per aiutare nella soluzione di problemi di localizzazione globale o, pi` in generale, di SLAM. u A seguito delle sperimentazioni effettuate, l’interesse si ` spostato dalla localizzazione del e nodo ZigBee, alle strategie efficaci per raggiungerlo; questo, ovviamente, non perch´ il e primo problema sia meno interessante, ma perch´ potremmo considerare il secondo una e 1 Come abbiamo visto al paragrafo 4.1.4, nel caso dei dispositivi impiegati, possiamo parlare indifferentemente di RSS o LQI, grazie alla relazione 4.1 73
  • 88.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 74 sua versione “rilassata”. Nell’esplorazione di ambienti effettuata da robot mobili, questa funzionalit` potrebbe essere pensata come un sensore aggiunto, che riesce ad indicare la a vicinanza di un punto sulla mappa, sia esso stabilito volontariamente o meno. Quello a cui siamo davanti pu` essere pensato come un nuovo approccio all’esplora- o zione, che rispetto ad altri [SB03, BMF+ 00, MLLH06, TK03], prende le sue decisioni in base alla qualit` del segnale ricevuto dal dispositivo ZigBee installato sul robot mobile; a in questo caso, il problema della ricerca di un punto nell’ambiente, viene risolto mediante un’esplorazione guidata e la scelta delle frontiere avviene con un contributo informati- vo pi` rilevante rispetto ai casi in cui tali scelte vengono effettuate con una strategia u greedy (ad esempio, considerando la frontiera pi` vicina [Yam98]). Con tali considera- u zioni, la ricerca cieca, risolta mediante esplorazione, diviene quindi ricerca informata e consente di ridurre notevolmente i tempi per il raggiungimento dell’obiettivo della mis- sione. L’idea ` quella di riprodurre la situazione vista al paragrafo 4.3, mantenendo un e nodo fisso che rappresenta l’obiettivo, in grado di trasmettere un pacchetto beacon, e pi` nodi installati altrettanti su robot mobili, in grado di ricevere questi avvisi e sce- u gliere deterministicamente, basandosi sul LQI ricevuto, quale nuova zona dell’ambiente esplorare. Come vedremo successivamente, l’esplorazione ` basata anche in questo caso sul e concetto di frontiere [Yam97], la cui selezione ad ogni step ` affidata ad un algoritmo e euristico. Ovviamente, considerando che le scelte pi` rilevanti fatte dall’algoritmo ven- u gono effettuate elaborando un dato poco stabile e rumoroso come il LQI, esso non sar` a infallibile in ogni condizione e necessiter` di strumenti di filtraggio adeguati per ridurre a le incertezze sulle misurazioni. Questo tipo di metodologia di esplorazione, si presta abbastanza bene ad ambienti indoor strutturati e semistrutturati, con possibili scenari di applicazione sono che de- scritti nel seguito. L’algoritmo implementato ` stato sperimentato prima in un ambiente e di simulazione e, successivamente, su un robot mobile reale. I risultati conseguiti sono descritti al capitolo 7. In questo capitolo verr` illustrato in dettaglio il funzionamento generale dell’algorit- a mo, mentre al capitolo 6 ` lasciata la descrizione delle scelte progettuali e implementative. e La sua presentazione ` stata realizzata con lo scopo principale di dimostrare la validit` e a dell’approccio; molte considerazioni possono essere fatte, al fine di migliorarlo e renderlo pi` efficiente. u 5.1 Concetti preliminari Nel seguito vengono introdotti alcuni concetti, necessari per comprenderne al meglio la struttura dell’intero sistema realizzato.
  • 89.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 75 5.1.1 Sistema di riferimento Considerando che in questa tesi sono stati prese in considerazione esplorazioni di spazi bidimensionali, per specificare la posizione del robot ` stata utilizzata la convenzione e che prevede un riferimento globale per il piano (XI , YI ) e uno locale al robot (XR , YR ), come riportato in figura 5.1. Una volta scelto il punto P , la generica posizione (posa) sulla mappa sar` individuata dalla terna (x, y, θ). a YI YR XR θ P XI Figura 5.1: Sistema di riferimento per il robot 5.1.2 Esplorazione mediante frontiere Per un robot mobile che non ha conoscenza a priori dell’ambiente e deve quindi esplorarlo, un approccio abbastanza noto in letteratura ` quello descritto in [Yam97], basato sul e concetto di frontiera. Essa rappresenta la regione di che delimita lo spazio esplorato e quello non esplorato; in figura 5.2 ` rappresentato, in bianco lo spazio esplorato, in nero e gli ostacoli, in blu lo spazio inesplorato e i punti viola rappresentano il punto selezionato come rappresentante della frontiera, dato che essa ` composta da tutti i punti bianchi e che confinano con il blu. A volte, a partire dai punti di frontiera, per calcolare il punto Figura 5.2: Esplorazione basata su frontiere che la rappresenta unicamente, viene utilizzato semplicemente il baricentro di tutti i suoi
  • 90.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 76 punti. Nel paragrafo 6.2.1 ` possibile consultare dettagli sull’implementazione software e concernente la ricerca di frontiere. In questo la rappresentazione spaziale dell’ambiente viene fatta su occupancy grid, in cui, ad ogni rilevazione dei sensori del robot (sonar, laser, infrarossi) viene modificata la probabilit` che in una determinata cella della mappa sia presente un ostacolo o meno. a Per la ricerca delle frontiere nella mappa di solito vengono utilizzati strumenti della computer vision, raggruppando tutte le celle facenti parti dello spazio esplorato (bianco) e suddividendole in differenti regioni di frontiera, utilizzando tecniche di blob coloring [BB82]. Ogni regione con un numero di punti maggiore di una determinata soglia ` e considerata un frontiera. Questo tipo di approccio, basato sulle frontiere, si presta bene ad ambienti indoor e outdoor, in cui gli ostacoli possono trovarsi in posizioni arbitrarie, permettendo di estendere gradualmente gli spazi di esplorazione. 5.1.3 Configurazione dell’agente Nel seguito si assumer` di lavorare con un agente configurato per l’esplorazione auto- a noma, ovvero con componenti software e sensori in grado di permettere lo spostamento del robot mobile da un punto libero della mappa ad un altro, in maniera indipendente e senza intervento dell’operatore. Negli esperimenti effettuati, sia in simulazione che nella realt`, sono presenti dei moduli dedicati al mapping, alla localizzazione, al motion a control e alla navigazione, appartenenti alla piattaforma di sviluppo SPQR-RDK, intro- dotta al paragrafo 1.6. Dal punto di vista dei sensori, oltre all’odometria, ` presente un e laser scanner che permette di effettuare agevolmente esplorazione basata su frontiere. 5.2 Esplorazione guidata dal LQI - Descrizione dell’algo- ritmo In questa parte della tesi, viene descritto in dettaglio il funzionamento dell’algoritmo di esplorazione per robot mobili, basato sulla qualit` del segnale ricevuto da disposi- a tivi ZigBee. Per il momento la trattazione viene affrontata dal punto di vista teorico, tralasciando alcuni aspetti implementativi che verranno illustrati al capitolo 6. Iniziamo col dire che l’assunzione principale che viene fatta dall’algoritmo, ` quella e di avere a disposizione dei nodi beacon presenti nell’ambiente da esplorare, in grado di inviare dei messaggi a dei nodi subscribers che ne fanno richiesta. Nella fase preliminare, il robot deve scegliere il beacon verso cui avvicinarsi. Considerando che in un dato istante pi` dispositivi ZigBee possono trovarsi nel raggio di copertura, esso ne seleziona uno u come quello obiettivo da raggiungere, basandosi su un determinato criterio (ad esempio sceglie il nodo con LQI medio maggiore).
  • 91.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 77 Figura 5.3: Discretizzazione dell’ambiente e matrice LQI Un’astrazione importante che viene effettuata sull’ambiente esplorato, e che sar` la a base da cui partire per fornire una differente priorit` frontiere, ` la suddivisione della a e mappa (ottenuta dagli algoritmi di mapping) in celle equidimensionate e di proporzioni adeguate alla mappa stessa (fig. 5.3): tale suddivisione favorisce la discretizzazione dell’ambiente ed ` rappresentata numericamente da una matrice Mlqi (eq. 5.1), in cui e ogni elemento indica il LQI della rispettiva cella sulla mappa (fig. 5.3). In base alla frequenza con cui il nodo presente sul robot e il beacon si scambiano messaggi (da cui, in ricezione, viene estratto ogni volta il LQI), pu` accadere che il primo si trovi ancora o all’interno della stessa cella e in quel caso sul valore LQI pu` essere effettuata una media o o un altro tipo di filtraggio.   156 N.D. N.D. N.D. N.D. N.D. · · · N.D.    N.D.  163 175 N.D. N.D. N.D. · · · N.D. 151 159 178 N.D. N.D. · · ·    N.D. N.D. Mlqi =  (5.1)  121  144 N.D. 157 N.D. N.D. · · · N.D.  . . . . . . .. .   . . . . . . . .   . . . . . . .  N.D. N.D. N.D. N.D. N.D. N.D. · · · N.D. Come ` facile notare (eq. 5.1), una possibile istanza di Mlqi , contiene la storia di tutte le e osservazioni del LQI, effettuate solo dove l’agente ` transitato (negli altri casi la matrice e riporta il valore N.D.); questa matrice sar` il dato principale con cui viene decisa la a prossima frontiera verso cui muoversi. L’esplorazione guidata dal LQI procede ad ogni passo selezionando una nuova fron- tiera, precisamente quella che presenta lo score pi` alto, in base all’euristica che verr` u a illustrata nella sezione 5.2.1. Per ridurre la complessit` dell’algoritmo, durante lo spo- a stamento da una frontiera all’altra, non vengono eseguite ulteriori azioni se non quella di continuare a raccogliere dati sul LQI, che vanno a popolare la matrice Mlqi . Come
  • 92.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 78 ausilio per l’esposizione, ci riferiremo nel seguito alla macchina a stati di figura 5.4, per esaminare i differenti comportamenti dell’algoritmo nelle varie fasi di esplorazione. Il robot, una volta selezionato il beacon parte dallo stato STOPPED e, quando viene attivato il modulo di navigazione, sceglie la prima frontiera di esplorazione in modo casuale tra quelle trovate, non avendo dati sufficienti per agire diversamente; mentre si dirige verso la frontiera selezionata, lo stato permane in GATHERING, ovvero la matrice Mlqi viene aggiornata con i valori del LQI rilevati durante lo spostamento. Ogni volta che viene raggiunto il punto frontiera, lo stato passa in CLEVER CHOICE, nel quale viene scelta la prossima frontiera da esplorare, in base agli score riportati da tutte quelle disponibili. Va notato che nel calcolo dello score di una frontiera, viene considerata anche la sua distanza dal robot (a parit` di score, la frontiera pi` vicina incrementa il suo score); ` a u e ovvio che non ` possibile invocare il path planner per ogni frontiera, in quanto troppo e oneroso computazionalmente, per cui nel calcolo dello score viene utilizzata una metrica euclidea. Il controllo sulla lunghezza del path viene effettuato una volta selezionata quella con score pi` alto, calcolando il path e controllando in che proporzioni sono u distanza del path e distanza euclidea. Se il path ` troppo lungo, tale frontiera viene e scartata e si passa alla seconda con score pi` alto, e cosi via (fig. 5.7). u (Navigator enabled & Random frontier Beacon choosen) RANDOM choosen CHOICE Frontiers Best frontier choosen scores too close STOPPED GATHERING CLEVER Navigator No more frontiers CHOICE done currentLQI > Navigator disabled deepScanLqiThreshold Navigator done NEAR DEEP TARGET SCAN Too long computed path (planner) currentLQI > nearTargetLqiThreshold Figura 5.4: Macchina a stati dell’algoritmo di esplorazione Il ciclo di stati GATHERING-CLEVER CHOICE si ripete, finch´ il LQI ricevuto dal robot e non supera una determinata soglia (deepScanLqiThreshold), selezionata a priori; lo stato dell’algoritmo a questo punto transita in DEEP SCAN, una modalit` in cui viene a utilizzata una seconda mappa, in ausilio a quella classica costruita con le scansioni del range finder dai moduli di mapping. Essa ` sostanzialmente un clone della mappa e
  • 93.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 79 originale, in cui viene simulata una scansione con raggio di apertura molto minore2 , che consente di muoversi a step pi` brevi (fig. 5.5). Questa operazione ` necessaria, dato che u e una volta che il laser scanner nella sua scansione non trova pi` frontiere, l’esplorazione u continua sulle altre, non considerando il fatto che il nodo beacon da raggiungere potrebbe trovarsi proprio nell’area della scansione appena effettuata. Ovviamente, per semplificare il riconoscimento di quest’ultimo quando si ` nelle vicinanze, possono essere utilizzate e tecniche ausiliarie, come la visione artificiale [BB82]. Figura 5.5: La mappa in modalit` DEEP SCAN a Dallo stato DEEP SCAN, si esce quando il LQI supera una seconda soglia, che rap- presenta una situazione in cui trasmettitore e ricevitore sono ad una distanza di circa 2 metri. In questo caso lo stato diventa NEAR TARGET e il robot si ferma immediatamente nella posizione in cui si trova, indicando che nodo beacon ` nelle immediate vicinanze. e 5.2.1 Calcolo degli score delle frontiere Il punteggio (score) di una frontiera, rappresenta l’indicatore di preferenza principale, mediante il quale, ad ogni passo dell’esplorazione, viene stabilito l’ordinamento delle frontiere. L’attribuzione dello score, come vedremo, si basa principalmente sulla matrice Mlqi e sulla divisione della mappa in celle. Le coordinate di un punto (x, y) sul piano della mappa (XI , YI ) (par. 5.1.1), quando necessario, vengono convertite nella relativa cella e quindi in indici sulla matrice Mlqi , come ad esempio accade per la posa del robot e i punti rappresentanti delle frontiere. L’esempio esplicativo al quale ci riferiremo per la spiegazione ` illustrato in figura e 5.8, in una condizione in cui ` necessario scegliere tra due possibili frontiere. La griglia e rappresenta Mlqi , con i valori di LQI rilevati nelle differenti celle. Come vediamo, anche il robot e le frontiere sono posizionate su celle. 2 Ad esempio, nei nostri esperimenti, il laser scanner Hokuyo ha un raggio di 4 metri, mentre la scansione ridotta viene effettuata con raggio pari a 1 metro
  • 94.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 80 L’algoritmo per il calcolo degli score (Algoritmo 1) viene invocato ogni qualvolta sia necessario selezionare una frontiera di esplorazione, tra quelle disponibili al momento. In input viene fornito l’insieme delle frontiere F e la matrice Mlqi , mentre in output ` restituito l’insieme delle frontiere ordinato per score. Quando parleremo di distanza e nella spiegazione, ci riferiremo sempre alla distanza euclidea, calcolata sulle matrici e quindi relativa alle celle. Ad esempio per due generici elementi α = (i, j) e β = (k, l) essa vale: dist(α, β) = (i − k)2 + (j − l)2 . Input: F : l’insieme delle frontiere - Mlqi : la matrice che contiene i valori LQI Output: Ford : l’insieme delle frontiere ordinato per score 1 foreach Frontiera Fi ∈ F do 2 Fdisti ← Calcola la distanza (euclidea) del robot dalla frontiera i; 3 Mdisti ← Calcola matrice delle distanze per la frontiera i; 4 end 5 maxDist ← Calcola la massima distanza possibile tra elementi di Mlqi ; 6 foreach Matrice Mdisti ∈ Mdist do 7 S1 ← 0; 8 S2 ← 0; 9 minDisti ← Calcola la distanza minima in Mdisti ; 10 foreach mdist(j,k) ∈ Mdisti do 11 if minDisti ≤ mdist(j,k) ≤ minDisti + ∆(minDisti ) then 12 S1 ← S1 + Mlqi (j, k) · (maxDist − mdist(j,k) ); 13 S2 ← S2 + mdist(j,k) ; 14 end 15 end S1 1 16 Scorei ← S2 + minDisti − Fdisti ; 17 end 18 Score ← Ordina gli score in modo decrescente; 19 Ford ← Ordina le frontiere in base allo score riportato; 20 return Ford ; Algoritmo 1: Algoritmo per il calcolo degli score Di seguito l’algoritmo viene spiegato in dettaglio, motivando le scelte computazio- nali effettuate. Molte di esse sono ricavate empiricamente, sulla base delle numerevoli sperimentazioni eseguite in simulazione. Per comprendere al meglio i calcoli effettuati, si consulti l’esempio numerico presente al paragrafo 5.2.1.1. L’esecuzione dell’algoritmo per il calcolo degli score (Algoritmo 1) procede come segue:
  • 95.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 81 1. Per ogni frontiera Fi ∈ F : • Viene calcolata la sua distanza dal robot e inserita nel vettore Fdist , in posizione i. • Viene calcolata la sua matrice di distanze Mdisti , ovvero la distanza della frontiera da ogni elemento di Mlqi diverso da N.D., e inserita nel vettore di matrici Mdist , in posizione i. 2. Calcolo della massima distanza possibile sulla matrice Mlqi . Se ad esempio essa ha √ dimensioni 20 × 20, maxDist = 800. Tale valore sar` necessario successivamente a per effettuare la media pesata (linea 12). 3. Per ogni matrice Mdisti ∈ Mdist : • S1 e S2 , che conterranno delle somme parziali, vengono inizializzati a 0. • Tra le distanze presenti in Mdisti , viene calcolata quella minima e inserita nel vettore minDist in posizione i. • Per ogni elemento mdist(j,k) ∈ Mdisti : – Se il valore di mdist(j,k) ` compreso tra minDisti e minDisti +∆(minDisti ), e allora vengono eseguite le due somme parziali S1 e S2 , che serviranno per effettuare la media pesata dei valori del LQI con la distanza. Questo signi- fica che solo alcuni valori di Mdisti (quelli che appunto si trovano a distan- za compresa tra minDisti e minDisti + ∆(minDisti )) vengono conside- rati. Ad esempio, in figura 5.8 sono rappresentati con diversi colori i valori di Mlqi considerati, a seconda della frontiera. La media pesata dei valori j Mlqi (j,k)·(maxDist−dist(j,k) ) LQI per ogni frontiera sar` del tipo: LQIi = a , j (maxDist−dist(j,k) ) dove S1 = j Mlqi (j, k) · (maxDist − dist(j,k) ) e S2 = j (maxDist − dist(j,k) ). Questo tipo di media fornisce un peso pi` alto ai valori del u LQI pi` vicini alla frontiera, rappresentando il fatto che essi risultano u maggiormente rappresentativi rispetto a quelli pi` distanti. u ∆(minDist) ` una funzione ricavata empiricamente e dipende dalla mi- e nima distanza della frontiera i da un elemento valido di Mlqi (ovvero minDisti ). Essa modella il fatto che a differenti distanze minime, l’in- sieme dei valori che rappresentano la frontiera (considerati quindi per il calcolo di LQIi ) varia: ad esempio a piccole distanze i valori scelti sono in quantit` minori che a distanze grandi. La funzione utilizzata ` graficata a e in figura 5.6. – Lo Scorei , relativo alla frontiera Fi , viene ricavato mediante la formu- S1 1 S1 la: S2 + minDisti − Fdisti . Il termine S2 rappresenta il risultato della 1 media pesata, mentre il termine minDisti fornisce uno score pi` basso u
  • 96.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 82 1.3 1.2 ∆(minDist) 1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 1 2 3 4 5 6 minDist Figura 5.6: Grafico della funzione ∆ alle frontiere con minDisti pi` alto, indicando il fatto che frontiere ec- u cessivamente distanti dai valori di Mlqi possono essere rappresentate in modo non veritiero. Stessa valutazione viene fatta per il termine ne- gativo − Fdisti , in quanto le frontiere pi` distanti dal robot vedono u maggiormente decrementato il loro score (` pi` costoso raggiungerle). e u Dato che in questa fase stiamo considerando solo la distanza euclidea, occorre evidenziare che, solo in fase di scelta definitiva della frontiera (nella macchina a stati illustrata in figura 5.4), verranno risolte situazioni come quelle di figura 5.7. Robot Frontiera Path Fdist Figura 5.7: In questo caso la Fdist ` piccola, mentre la lunghezza del path per rag- e giungerla ` abbastanza grande. In questo la frontiera potrebbe essere scartata, per e lasciare il posto ad una eventualmente pi` vicina e con score di poco inferiore. u 4. Infine, le frontiere vengono ordinate in modo decrescente, in base agli score ripor- tati. 5.2.1.1 Un esempio di esecuzione Ritornando all’esempio di figura 5.8, procediamo all’esecuzione dell’algoritmo per le due frontiere per verificare quale delle abbia score pi` alto dell’altra. I calcoli forniscono i u seguenti risultati:
  • 97.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 83 Robot 156 Frontiera Celle relative a F1 163 175 minDist1 F1 Celle relative a F2 Obiettivo 151 159 178 Fdist1 121 144 162 minDist2 Fdist 2 F2 Figura 5.8: Calcolo degli score per le frontiere √ √ • Fdist = [ 8 8 ]   5.01 N.D. N.D. N.D. N.D. N.D. N.D.   N.D.  4 3 N.D. N.D. N.D. N.D.    N.D. 4.12 3.16 2.23 N.D. N.D. N.D. • Mdist1 =    5.38 4.47 N.D. 2.82 N.D. N.D. N.D.     N.D. N.D. N.D. N.D. N.D. N.D. N.D.   N.D. N.D. N.D. N.D. N.D. N.D. N.D.   5.01 N.D. N.D. N.D. N.D. N.D. N.D.   N.D.  4 4.12 N.D. N.D. N.D. N.D.    N.D. 3 3.16 3.60 N.D. N.D. N.D. Mdist2 =    2.23 2 N.D. 2.82 N.D. N.D. N.D.     N.D. N.D. N.D. N.D. N.D. N.D. N.D.   N.D. N.D. N.D. N.D. N.D. N.D. N.D. √ • minDist1 = 5 = 2.23 e minDist2 = 2 • ∆(minDist1 ) = 0.95 e ∆(minDist2 ) = 1 • F1 : 2.23 ≤ mdist(j,k) ∈ Mdist1 ≤ 3.18 – Mdist(2,3) = 3 ⇒ Mlqi(2,3) = 175 – Mdist(3,3) = 3.16 ⇒ Mlqi(3,3) = 159 – Mdist(3,4) = 2.23 ⇒ Mlqi(3,4) = 178 – Mdist(4,4) = 2.82 ⇒ Mlqi(4,4) = 162
  • 98.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 84 • F2 : 2 ≤ mdist(j,k) ∈ Mdist2 ≤ 3 – Mdist(4,2) = 2 ⇒ Mlqi(4,2) = 144 – Mdist(3,2) = 3 ⇒ Mlqi(3,2) = 141 – Mdist(4,1) = 2.23 ⇒ Mlqi(4,1) = 122 • maxDist = (1 − 6)2 + (1 − 7)2 = 9.21 175·6.21+159·6.05+178·6.97+162·6.38 • LQI 1 = 6.21+6.05+6.97+6.38 = 168.8 1 √ Score1 = 168.8 + 2.23 − 2.82 = 167.36 144·7.21+151·6.21+121·6.97 • LQI 2 = 7.21+6.21+6.97 = 138.26 1 √ Score2 = 138.26 + 2 − 2.82 = 137.08 La frontiera con lo score maggiore risulta essere F1 , che verr` pertanto selezionata come a target dal sottosistema di navigazione del robot. Rimane valido in ogni caso il ragio- namento descritto al paragrafo precedente, che tiene in considerazione la lunghezza del percorso calcolato dal path planner verso il punto rappresentante della frontiera. Un aspetto rilevante dell’algoritmo, ` la capacit` di uscire facilmente dai massimi e a locali, situazioni che possono facilmente presentarsi in approcci di tipo a gradiente o a campi di potenziale. L’accumularsi delle letture durante lo spostamento verso le fron- tiere, aggiorna la conoscenza che il robot ha della mappa, permettendogli di scartare ad ogni passo le zone che in precedenza apparivano come le migliori, ma che una volta raggiunte riportano un basso valore LQI. 5.3 Possibili scenari In questa sezione vengono descritti alcuni degli scenari in cui l’approccio presentato pu` o dimostrare la sua utilit`. a 5.3.1 Rendezvous Il problema del rendezvous [DR97, ZLV07] consiste nell’incontro, da parte di due o pi` u agenti, in un punto e ad un orario ben determinato. Nei sistemi multi-robot avere questo ` un bisogno inerente. La possibilit` di incontrarsi facilita innanzitutto la localizzazio- e a ne e facilita il coordinamento nell’esplorazione di grandi ambienti, riducendo il tempo necessario al completamento. Nel nostro caso, i punti selezionati per il rendezvous (chiamati anche landmark ), possono essere pensati come dei nodi ZigBee lasciati nell’ambiente o installati sui robot. Dato che ogni robot possiede un ricevitore, utilizzando le informazioni sul LQI e un’op- portuna euristica ` possibile raggiungere il landmark, a patto ovviamente che esso non e
  • 99.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 85 sia in condizioni di mobilit`. Considerata l’autonomia energetica e soprattutto il costo a contenuto di questi dispositivi, questa situazione ` facilmente realizzabile. e Va aggiunto che in scenari di rendezvous esistono due problemi a priori, ovvero come scegliere il landmark e quale landmark selezionare dall’insieme di quelli potenzialmente disponibili, temi che vanno oltre gli scopi di questa tesi. 5.3.2 Rescue robots Nel campo della robotica di soccorso e, in particolare, in ambito Search and Rescue [HSI+ 99, CFIN07, MNG06, NA07], ` facile immaginare come informazioni sulla loca- e lizzazione di punti di interesse (ostacoli, feriti, punti di raccolta, altri robot) possano divenire di estrema importanza per accelerare i tempi di esplorazione di aree devastate, con la conseguenza di aumentare la probabilit` di salvare anche vite umane. Si compren- a de inoltre quanto ci` sia di interesse primario in ambienti indoor (uffici, abitazioni), o o dove comunque non c’` la possibilit` di utilizzare altri sistemi di posizionamento (come e a ad esempio GPS). Considerate le possibilit` di miniaturizzazione che possono essere raggiunte nella a produzione di dispositivi ZigBee, possiamo pensare ad uno scenario in cui ogni per- sona indossi un ricevitore e che, nel caso di incidenti o devastazioni 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 possono avvenire incendi, cedimenti strutturali o emissioni di sostanze tossiche. Nelle squadre multi-robot, l’algoritmo di esplorazione guidata pu` aiutare un robot o a trovare un altro membro della squadra in difficolt`, perch´ esso fornisce funzionalit` a e a particolari che l’altro non possiede (ad esempio, un robot “demolitore”, potrebbe riuscire a liberare un passaggio bloccato da eventuali ostruzioni). 5.3.3 Deployment di reti ad-hoc Sempre per quanto riguarda scenari di soccorso robotico, un’idea interessante ` quella e di sfruttare l’approccio presentato per gestire efficientemente il deployment di una rete di comunicazione wireless ad-hoc, in situazioni di emergenza [RB05]. In molti casi, la presenza di una infrastruttura di rete, consente il controllo e monitoraggio da parte dell’operatore esterno, permettendo inoltre di mantenere le comunicazioni tra le squadre di robot distanti [HMS02]. Il problema che si presenta, ` quello di massimizzare la copertura della rete, mi- e nimizzando il numero di nodi necessari. Apportando alcune modifiche all’algoritmo presentato, ` possibile far trovare autonomamente al robot le zone in cui la qualit` del e a segnale ` pi` bassa, considerando ovviamente una mappa del LQI per ogni dispositi- e u vo e ragionando sull’intersezione delle stesse. In questo modo ` come ci trovassimo in e
  • 100.
    Capitolo 5. Esplorazioneguidata dalla qualit` del segnale a 86 una logica invertita rispetto al problema originale, cercando di scegliere le frontiere che minimizzano il LQI. 5.3.4 Sorveglianza In scenari di sorveglianza mediante robot mobili [HBB+ 00], l’impiego dell’algoritmo di esplorazione pu` fornire vantaggi per il monitoraggio di oggetti che frequentemente o vengono cambiati di posizione. Si pensi ad esempio a delle telecamere mobili, in grado di rilevare condizioni di allarme e che sono equipaggiate con un dispositivo ZigBee; il robot pu` raggiungere pi` efficientemente il luogo in cui si ` verificato l’evento, senza o u e conoscenza a priori sulla posizione della telecamera, che pu` quindi essere spostata a o seconda delle necessit`, senza il bisogno ogni volta, di registrare su una mappa questi a cambiamenti.
  • 101.
    Capitolo 6 Sperimentazione In questocapitolo vengono presentate le problematiche relative all’implementazione del- l’algoritmo di esplorazione descritto al capitolo 5 e i risultati ottenuti in sperimentazione, in ambiente reale e simulato. La fase di implementazione ha previsto lo sviluppo di due applicazioni distinte, una riservata ai dispositivi ZigBee, successivamente integrata con l’applicazione in esecuzione a bordo del robot. In questo caso, la realizzazione delle nuove componenti ` stata eseguita e integrando moduli gi` esistenti, facenti parte del framework per robot mobili SPQR-RDK a (par. 1.6). Dopo una descrizione dell’applicazione ZigBee realizzata, vengono illustrati i nuovi moduli implementati e gli aspetti fondamentali dell’ambiente di simulazione impiegato durante la sperimentazione dell’algoritmo. La parte conclusiva del capitolo ` riservata alla descrizione delle sperimentazioni e effettuate, sia in ambiente simulato (utilizzando la piattaforma Player/Stage) che in ambiente reale, utilizzando il robot mobile “Rotolotto”, presente al laboratorio SIED. Dai risultati ottenuti in questa fase, saranno estratte le conclusioni, a cui ` dedicato il e capitolo successivo. 6.1 Applicazione per i dispositivi ZigBee L’applicazione sviluppata per essere eseguita sui dispositivi ZigBee, prevede l’utilizzo di almeno due dispositivi, di cui un coordinatore (ZC) e uno o pi` router (ZR). Il coordina- u tore ` installato sul robot mobile ed ` collegato mediante interfaccia seriale all’elaboratore e e che esegue il software di navigazione. Esso, oltre a possedere le funzionalit` descritte al a paragrafo 3.4.3.1, ` stato programmato per trovare i dispositivi ZigBee nel suo raggio di e copertura (vicinato) ed effettuare richieste ai nodi beacon (ZR). I ZR, a loro volta, rispondono alle richieste del coordinatore, inviando periodicamente un messaggio di beacon. Da questi messaggi, in ricezione, ` possibile estrarre il valore e del LQI che mediante un apposito formato dati viene scritto sulla porta seriale USB e letto dall’applicazione di interfaccia, in esecuzione sul robot. 87
  • 102.
    Capitolo 6. Sperimentazione 88 Da un punto di vista implementativo, l’applicazione residente sui nodi prevede due cluster (par. 3.4.4), uno per la richiesta (BeaconRequest) e uno per la risposta (BeaconResponse); ` proprio dai messaggi BeaconResponse ricevuti che viene estratto il valore del LQI, e necessario per il funzionamento dell’algoritmo. L’avvio dell’applicazione avviene mediante i tasti funzione presenti sul dispositivo (fig. 4.1), ad esempio per la richiesta del vicinato (NeighborhoodRequest) o di beacon. Per semplificare l’interazione, il dispositivo che risulta avere LQI pi` alto tra i vicini u viene scelto automaticamente come nodo obiettivo dall’algoritmo di esplorazione, che pertanto ricever` esclusivamente da tale nodo i messaggi di beacon durante l’esecuzione. a LQ ZigBee Coordinator ZigBee Router I: 81 2. BeaconRequest 3. BeaconResponse 1. NeighborhoodRequest Figura 6.1: Configurazione dell’applicazione ZigBee 6.2 Applicazione per SPQR-RDK Dopo la fase di sperimentazione con i dispositivi ZigBee e di ideazione dell’algoritmo di esplorazione, una parte significativa del lavoro di tesi ha visto l’implementazione software del sistema sotto forma di moduli per la piattaforma SPQR-RDK. Tutto il software realizzato ` presente nel repository del laboratorio SIED e scaricabile mediante e il tool Subversion1 . Il diagramma delle classi di figura 6.2 fornisce una visione d’insieme del sistema realizzato; i sottosistemi di localizzazione, mapping, planning e navigazione erano gi` a preesistenti e funzionanti. Anche il modulo per la ricerca delle frontiere (par. 5.1.2) era parzialmente implementato ed ` stato modificato per aggiungere nuove funzionalit`. I e a moduli realizzati interamente sono ZigbeeExplorator e ZigbeeInterface; nel primo ` stata codificata tutta la logica dell’algoritmo per la scelta delle frontiere, mentre nel e secondo ` stata implementata l’interfaccia di comunicazione con il dispositivo ZigBee. e 1 http://subversion.tigris.org/.
  • 103.
    Capitolo 6. Sperimentazione 89 FrontierFinder Navigator Mapping ZigbeeExplorator Path Planner Module ZigbeeExplorator ZigbeeInterface Module Frontier ZigbeeInterface -score -distance +readLqiValue() LqiGatherer -lqiMatrix FrontierChooser StaticLqiMap ZigbeeDriver +updateLqiValue() -lqiMap +computeFrontiersRank() +readLqiValue() +readLqiValue() Figura 6.2: Diagramma delle classi del sistema Il diagramma delle classi, sebbene incompleto di alcuni dettagli, aiuta a comprendere bene le dipendenze tra i moduli e le loro responsabilit` nell’intero sistema. Nei para- a grafi successivi essi verranno descritti dettagliatamente, prestando attenzione ad alcuni dettagli implementativi e alle problematiche che gradualmente si sono presentate. 6.2.1 Modulo FrontierFinder La ricerca delle frontiere ` una operazione fondamentale durante l’esplorazione in am- e bienti sconosciuti, in quanto gradualmente fornisce nuovi punti della mappa da visitare. Esse sono rilevate trovando le regioni di confine tra la parte di mappa inesplorata e quella esplorata; quelle con un numero sufficiente di punti vengono considerate frontiere. Nel nostro caso, il modulo di ricerca delle frontiere era gi` presente, anche se par- a zialmente implementato. Esso era in grado di fornire, per ogni frontiera, l’insieme dei punti che la costituiva; dal punto di vista della navigazione per`, ` utile trovare anche o e un rappresentante di questi punti, in modo che sia possibile fornirlo come target al ro- bot. Un approccio comune [Yam97] ` quello di calcolare il centroide (o baricentro) dei e punti, dato che, considerata la natura convessa delle regioni di frontiera, tale punto per definizione ricade all’interno della parte di mappa esplorata. Questo ragionamento, anche se corretto, porta in alcune situazioni particolari a tro- vare i rappresentanti troppo vicini agli ostacoli. Per questo motivo, ` stata sfruttata una e informazione fornita dal modulo di mapping, la cosiddetta distance map; sostanzialmen- te essa ` una mappa in cui ogni punto indica la distanza dall’ostacolo pi` vicino (fig. e u 6.3(a)). In questo modo, il rappresentante della frontiera, pu` essere trovato calcolando o
  • 104.
    Capitolo 6. Sperimentazione 90 (a) La distance map (b) Le frontiere trovate Figura 6.3: Le frontiere trovate con l’ausilio della distance map un centroide pesato con la distanza dagli ostacoli e fornendo quindi pi` rilevanza ai punti u lontani dagli ostacoli. Ad esempio, per trovare F = (Fx , Fy ) si ottiene: j (px j ) · dxj j (py j ) · dy j Fx = , Fy = . j dxj j dy j In figura 6.3(b), con differenti colori sono marcate le regioni di frontiera, mentre i punti viola sono i rappresentanti trovati utilizzando il centroide e la distance map. 6.2.2 Modulo ZigbeeInterface L’intero approccio descritto in questa tesi si basa sulla possibilit` di ottenere, in ogni a momento, il valore del Link Quality Indicator sui pacchetti in ricezione. Durante l’im- plementazione, per ottenere questo dato, si sono verificati principalmente due problemi; in fase di simulazione era necessario emulare il comportamento del nodo ZigBee e di conseguenza la variazione di LQI al cambiamento di posa dell’agente rispetto al nodo beacon, mentre in fase di test sul robot reale era necessario interfacciarsi fisicamente con il dispositivo. La soluzione al primo problema ` abbastanza intuitiva, ma ha consentito di non e rendere troppo complessa la sperimentazione dell’algoritmo di esplorazione. Esistono numerosi software commerciali in grado di simulare abbastanza fedelmente campi elet- tromagnetici, anche in ambienti indoor, ma un tale livello di complessit` non era tuttavia a richiesto. L’idea ` stata quella di effettuare misurazioni accurate del LQI, “campionan- e do” opportunamente l’ambiente secondo la configurazione descritta al paragrafo 4.3.1 e, successivamente, mediante una interpolazione bidimensionale generare la mappa statica del LQI utilizzata per la simulazione (fig. 6.4(b)), dove le zone pi` “calde” indicano un u valore LQI pi` alto rispetto alle zone “fredde”. Tale mappa viene sovrapposta idealmen- u te a quella dell’ambiente da esplorare, permettendo di avere in ogni punto il valore del
  • 105.
    Capitolo 6. Sperimentazione 91 LQI in ricezione. Inoltre, considerando i risultati di figura 4.6, ` possibile introdurre e una funzione di rumore gaussiano additiva che faccia variare leggermente i valori della mappa statica, per rendere pi` realistiche le letture del valore LQI2 . u (a) Posizioni per le misurazioni (b) Mappa del LQI generata con interpo- lazione bicubica Figura 6.4: Generazione della mappa statica per il LQI L’interfacciamento fisico al dispositivo ` stato tutt’altro che elementare, in quanto i e driver esistenti erano solo per piattaforma Windows. Ci` ha richiesto la modifica e la o compilazione di un driver per Linux di un altro produttore, adattandolo al dispositivo a nostra disposizione. Una volta completata questa operazione, ` stato possibile estrarre e il valore del LQI scrivendo un piccolo parser per le stringhe ricevute sulla porta seriale. In condizioni dinamiche inoltre, come ` possibile osservare in figura 4.9, l’andamento e del LQI presenta degli outlier che devono essere filtrati. Per completare tutto ci` in o tempo reale occorre una computazione efficiente come una media o un filtro di Kalman [Kal60]. Per i nostri scopi ` stato sufficiente eseguire una media mobile del tipo: e LQI t = α · LQIt + (1 − α) · LQI t−1 , dove α ∈ R e 0 ≤ α ≤ 1. Tale parametro determina quanto pesa il valore LQI appena letto rispetto alla media ottenuta al passo precedente. Negli esperimenti effettuati, ponendo α = 0.85, si ottiene un sufficiente smoothing sui valori rilevati, senza necessit` a di implementare altri filtri pi` complessi. u Come ` possibile osservare in figura 6.2, il modulo ` stato progettato per essere e e trasparente rispetto al metodo utilizzato per leggere il LQI, che sia proveniente dalla mappa statica o dal dispositivo reale. Il metodo readLqiValue che viene eseguito a run-time ` specificato nel file di configurazione, mediante una variabile booleana. e 2 In questo modo, se il robot transita pi` volte nella stessa posizione della mappa, ottiene valori di u LQI differenti.
  • 106.
    Capitolo 6. Sperimentazione 92 6.2.3 Modulo ZigbeeExplorator In questo modulo ` racchiusa tutta la logica dell’algoritmo, descritta al paragrafo 5.2. In e particolare, nella classe principale ZigbeeExplorator ` stata implementata la macchina e a stati di figura 5.4; il suo scopo principale ` coordinare l’esecuzione del FrontierChoo- e ser, per l’assegnazione dello score alle frontiere (rappresentate dalla classe Frontier), e del modulo di navigazione, al fine di raggiungere di volta in volta il target selezionato. Il modulo ` impostato per essere schedulato ogni 500 ms, che risulta anche l’intervallo con e cui l’oggetto LqiGatherer ha la responsabilit` di registrare i dati del LQI, provenienti a dalla ZigbeeInterface. 6.2.4 Moduli di navigazione I moduli per la navigazione autonoma in ambiente sconosciuto erano gi` implementati e a funzionanti. L’approccio scelto ` una navigazione a due livelli, in cui viene impiegato un e path planner globale (basato sull’algoritmo A∗ ) e un controllore di basso livello (motion planner ) che suddivide il path in sottobiettivi di rapida attuazione, in cui il robot deve seguire la traiettoria evitando eventuali ostacoli. In questo modo il movimento del robot ` funzione sia delle percezioni sensoriali che della posizione relativa dall’obiettivo. e 6.2.5 Moduli di localizzazione e mapping Per eseguire efficientemente i task di navigazione, sono di primaria importanza i moduli di localizzazione e mapping, che si occupano di stimare consistentemente la posizione del robot e la mappa dell’ambiente esplorato, a partire dalle rilevazioni dei sensori (scan matching [MLM05]). In questo modulo viene costruita anche la distance map, che viene utilizzata per pesare opportunamente il centroide della frontiera (par. 6.2.1). 6.3 Simulazione Nello sviluppo e sperimentazione dell’algoritmo, ha avuto importanza rilevante impiegare un adeguato ambiente di simulazione, nel quale ` stato possibile verificare velocemente e le prestazioni su diversi ambienti, senza utilizzare necessariamente il robot reale. La piattaforma impiegata ` stata esclusivamente Player/Stage, in quanto era suffi- e ciente una rappresentazione bidimensionale dell’ambiente da esplorare. La configurazio- ne del robot impiegato ` molto simile a quella reale; ` stato utilizzato un modello del e e Pioneer P2-AT, con laser scanner Sick. Per emulare la lettura istantanea del valore del LQI dal dispositivo, la mappa generata con interpolazione ` stata sovrapposta idealmen- e te a quella del simulatore, facendo in modo che le coordinate del pixel sulla mappa LQI coincidano con la posizione del robot rispetto alla mappa dell’ambiente, come ` possibile e
  • 107.
    Capitolo 6. Sperimentazione 93 osservare in figura 6.5. In questo modo ` possibile simulare facilmente diversi ambienti, e con differenti distribuzioni del segnale. LQI Value: 79 Cell (4,3) Figura 6.5: Simulazione dell’algoritmo in Player/Stage 6.4 Esperimenti Una volta terminata la fase di progettazione e implementazione dell’algoritmo di esplo- razione, una parte del lavoro ha visto la sua sperimentazione sia in simulazione che in ambiente reale. Essi tendono a mostrare la validit` dell’approccio scelto, sottolineando i a vantaggi introdotti. In entrambi i casi sono considerati ambienti indoor, semistrutturati ed esplorabili per mezzo di robot mobili su ruote dotati di laser scanner. Va sottolineato il fatto che, i risultati ottenuti, non sono stati confrontati diretta- mente con gli altri approcci esistenti, in quanto poco significativi, considerando che la loro strategia di scelta delle frontiere ` quasi esclusivamente greedy e non considera altre e sorgenti di informazione, come invece accade con l’algoritmo implementato. 6.4.1 Esperimenti in simulazione La configurazione utilizzata in simulazione ` quella descritta al paragrafo 6.3, conside- e rando ogni volta planimetrie e mappe LQI differenti. In ogni simulazione, nell’ambiente Stage, sono presenti due robot; uno rappresenta l’obiettivo da raggiungere (che conserva quindi la stessa posizione per tutta l’esecuzione) e su cui ` installato il nodo che invia i e messaggi beacon, mentre l’altro ` quello che esegue l’algoritmo di esplorazione guidata, e basato sulla qualit` del segnale ricevuto dal suo dispositivo. a
  • 108.
    Capitolo 6. Sperimentazione 94 Nelle figure che seguono sono presentati gli esiti dei differenti esperimenti, realizzati in altrettanti ambienti. In rosso ` rappresentato il robot mobile su cui ` in esecuzione e e l’algoritmo di esplorazione, mentre in blu ` indicato, anch’esso come un robot, l’obiettivo e da raggiungere. Come ` facile notare, osservando i tracciati di esplorazione nelle figure e 6.6, 6.7 e 6.8, le scelte effettuate dall’algoritmo forniscono un contributo determinante per la ricerca del nodo obiettivo. L’euristica basata sul LQI aiuta a ridurre lo spazio di scelta delle frontiere, eliminando quelle in cui l’andamento del segnale non ` significativamente e alto, permettendo un’esplorazione pi` rapida ed efficace dell’ambiente. In generale, il u comportamento del robot, ` quello di tentare ad entrare nelle stanze e appena riscontra e un abbassamento eccessivo della qualit` del segnale, prosegue per il corridoio. a Considerando che i calcoli sono effettuati basandosi sulla qualit` del segnale e che a tale grandezza in ambienti indoor ` abbastanza variabile, possono verificarsi casi come e quello di figura 6.8(b) in cui il robot crede di aver trovato il nodo obiettivo, anche se esso si trova dietro un ostacolo. Ovviamente, in tali situazioni, possono contribuire al corretto criterio di arresto dell’algoritmo altre metodologie di ricerca, che fanno uso di sensori alternativi, come ad esempio la visione artificiale. Figura 6.6: Esecuzione dell’algoritmo in un’abitazione 6.4.2 Esperimenti in ambiente reale La prova conclusiva dei risultati ottenuti, ha visto la sperimentazione dell’algoritmo rea- lizzato su un sistema reale, in particolare utilizzando il robot Rotolotto (par 1.2.1) in un ambiente indoor, precisamente dove sono situati i laboratori RoCoCo e ALCOR, nel seminterrato del Dipartimento di Informatica e Sistemistica. Come in simulazione, sono presenti due dispositivi ZigBee, uno sul robot e l’altro che individua l’obiettivo dell’esplorazione. Nell’esperimento descritto, essa inizia dalla stanza contrassegnata dal pallino rosso (fig. 6.9) e procede secondo il percorso illustrato, fino alla corretta indivi- duazione dell’obiettivo (indicato con un quadrato azzurro). In figura 6.10 sono riportate
  • 109.
    Capitolo 6. Sperimentazione 95 Figura 6.7: Esecuzione dell’algoritmo nel primo piano del DIS (a) Esecuzione 1 (b) Esecuzione 2 Figura 6.8: Esecuzione dell’algoritmo nello scenario del labirinto le foto scattate all’avvio e alla terminazione dell’esplorazione. Si comprende quindi che, i risultati ottenuti in simulazione, possono essere ricavati anche in situazione reale, sen- za notevoli limitazioni. L’unico problema riscontrato in alcuni casi ` stato la portata e trasmissiva limitata dei dispositivi in alcuni tratti, dovuto comunque alla configurazione della struttura (ad esempio, a causa dello spessore elevato dei muri). Come nella simulazione, il percorso seguito dal robot mostra efficacemente le scelte effettuate dall’algoritmo di selezione delle frontiere, prima di raggiungere l’obiettivo. A titolo di confronto, il tempo impiegato per l’esplorazione ` di 8 30 , rispetto ai 3 27 e necessari essendo virtualmente a conoscenza della posizione dell’obiettivo, ma non della mappa ovviamente.
  • 110.
    Capitolo 6. Sperimentazione 96 Percorso effettuato Punto di partenza Robot Obiettivo Frontiere Figura 6.9: La mappa generata nell’esplorazione (a) Situazione di partenza (b) Situazione di arrivo Figura 6.10: Sperimentazione dell’algoritmo in ambiente reale
  • 111.
    Parte III Risultati econclusioni 97
  • 112.
    Capitolo 7 Conclusioni esviluppi futuri 7.1 Sintesi dei risultati ottenuti In questo lavoro di tesi ` stato progettato, implementato e sperimentato un algoritmo e per l’esplorazione di ambienti semistrutturati da parte di robot mobili autonomi, basato sulla potenza del segnale ricevuto da dispositivi ZigBee. La sua realizzazione ha richiesto la trattazione di numerose problematiche; in primo luogo la scelta dei dispositivi da utilizzare e lo studio dello standard ZigBee per le reti LR-WPAN, in particolar modo gli strati MAC, rete e applicazione. Successivamente, contemporaneamente allo studio dello stato dell’arte nei metodi di localizzazione wireless, sono state effettuate una serie di sperimentazioni in ambienti indoor e outdoor, al fine di valutare le caratteristiche trasmissive dei dispositivi selezionati per il progetto. I risultati di questi test, hanno sicuramente aiutato ad osservare il problema originale sotto un differente punto di vista, consentendo di sfruttare le informazioni ricavate sulla potenza del segnale ricevuta, non pi` per realizzare un sistema di localizzazione wireless, ma bens` per ricavare indicazioni u ı utili durante l’esplorazione di ambienti sconosciuti da parte di robot mobili. L’algoritmo pensato si presenta come un’euristica basata sul LQI (Link Quality In- dicator), un dato che rappresenta adeguatamente la qualit` del collegamento tra due a dispositivi ZigBee, dove il trasmettitore individua il punto di interesse da segnalare e il ricevitore ` installato sul robot, in grado di ricevere tali segnalazioni. Come in altri e approcci [Yam98, BMF+ 00, KPN, MTK, SB03], l’esplorazione viene eseguita visitando ad ogni passo visitando le frontiere disponibili; a differenza di essi per`, la selezione della o frontiera migliore, ad ogni passo, ` guidata dalle informazioni raccolte sulla variazione e del LQI, che spesso forniscono una buona stima del vantaggio ricavabile dalla scelta. Una tale funzionalit` pu` risultare di notevole interesse, ad esempio, nella soluzione di a o problemi di rendezvous tra robot [DR97] o per rendere pi` efficiente la ricerca in ambito u Search and Rescue [BCC+ 04]. 98
  • 113.
    Capitolo 7. Conclusionie sviluppi futuri 99 Il sistema ` stato implementato in C++, sotto forma di moduli per il framework e SPQR-RDK, permettendo di sperimentare velocemente le prestazioni dell’algoritmo, sia in ambiente simulato che in condizioni reali. I test effettuati hanno dimostrato la validit` a dell’approccio, mostrando i benefici che si ottengono nella maggior parte dei casi ana- lizzati. L’informazione derivante dalla qualit` del segnale ricevuto pu` essere pertanto a o sfruttata positivamente, risultando un buon criterio per la scelta di frontiere, migliore sicuramente della scelta casuale o greedy (ad esempio, scegliendo la frontiera pi` vicina u [YSA98]). Da un punto di vista personale, posso sicuramente essere soddisfatto dei risultati ottenuti e delle capacit` acquisite durante tutto il periodo di sviluppo della tesi. Le a tematiche affrontate sono risultate di notevole interesse, con la possibilit`, inoltre, di a sperimentare i propri studi su un robot reale, oltre che in simulazione. 7.2 Sviluppi futuri ed estensioni Il sistema presentato pone le fondamenta per la soluzione di un problema base: il rag- giungimento da parte del robot di un punto nell’ambiente, in cui ` presente un dispositivo e che invia dei messaggi di tipo beacon. Tale scenario pu` essere certamente esteso, im- o maginando situazioni nel quale diversi robot esplorano l’ambiente e sono equipaggiati con nodi ZigBee; le funzionalit` dell’algoritmo possono essere sfruttate per effettuare dei a rendezvous o coordinare l’esplorazione al fine di aumentare l’area ricoperta nell’intervallo di tempo disponibile. I dispositivi possono essere rilasciati dinamicamente da un robot esploratore che magari ` pi` veloce, indicando il percorso da seguire agli altri membri e u della squadra perch´ pi` lenti o zone da evitare perch´ gi` esplorate (in questo caso la e u e a logica dell’algoritmo andrebbe ovviamente invertita, in modo da fornire le zone con LQI pi` basso). u Possono essere aggiunte inoltre, informazioni sulla topologia dell’ambiente mediante una semantica ad alto livello, al fine di accelerare la ricerca dei punti di interesse; ad esempio, se si intuisce di trovarsi in un corridoio, conviene prima effettuare un’esplo- razione preliminare dello stesso al fine di stimare con maggiore accuratezza le possibili stanze dove l’obiettivo pu` trovarsi. o Altri miglioramenti possono essere introdotti, tenendo conto della variazione del LQI (praticamente il gradiente del LQI) durante lo spostamento tra una frontiera e l’altra, ad esempio aumentando lo score per quelle che si trovano nel verso di incremento del LQI o annullando il raggiungimento di una frontiera se l’andamento ` eccessivamente e decrescente, gi` durante la fase di navigazione verso di essa. a
  • 114.
  • 115.
    Appendice A Piattaforma FreescaleMC13213 Sono di seguito riportati i dati tecnici principali del SiP MC13213 di Freescale, montato sui dispositivi 13213-SRB e 13213-NCB, utilizzati nello sviluppo della tesi. Modalit` di trasferimento a Pacchetto e stream Frequenza e canali 2.4 GHz ISM, 16 canali Throughput 250 Kbps con modulazione O-QPSK e spreading DSSS Modalit` di funzionamento a 4-RF (Off, Hibernate, Doze, Idle) e 4-MCU (Wait, STOP1, STOP2, STOP3) Sensitivit` a -92 dBm Tensione di funzionamento 2-3.4 V MCU HCS08 CPU a 40 MHz Memoria Flash 60 KB Flash, 4 KB RAM Input/Output 39 GPIO, ADC 10 bit e 8 canali, 4 timer, 2 SCI, IIC Potenza in uscita da -27 dBm a +4 dBm Temperatura di funzionamento da -40◦ C a +85◦ C Package 9x9x1 mm, 64 pin LGA (RoHS comnpliant) Tabella A.1: Dati tecnici della piattaforma ZigBee MC13213 di Freescale In figura A.1 ` possibile osservare lo schema a blocchi della piattaforma. e Analog Background Receiver HCS08 CPU Debug Module RFIC Timers Digital Transceiver 8 Channel Flash Memory Transmit/ 10 Bit ADC Frequency Balun Receive Generator Switch Digital Control Logic RAM 2x SCI Analog Transmitter Dedicated 2 IC CT_Bias SPI SPI Bypass Bu er RAM Low Voltage 16 Bit Timers Interrupt 7 GPIO IRQ Arbiter RAM Arbiter Keyboard COP Interrupt Power Voltage Management Regulators Internal Clock Up to 32 Generator GPIOs 802.15.4 Modem HCS08 MCU Figura A.1: Schema a blocchi della piattaforma MC13213 101
  • 116.
    Appendice A. PiattaformaFreescale MC13213 102 In figura A.2 ` riportato il grafico che mostra la relazione tra la potenza del segnale e ricevuta e quella riportata; si pu` notare la non-linearit` tra i -45 e i -40 dBm che causa o a i fenomeni descritti al paragrafo 4.2. -15 -25 Reported Power Level (dBm) -35 -45 -55 -65 802.15.4 Accuracy and Range Requirements -75 -85 -85 -75 -65 -55 -45 -35 -25 -15 Input Power Level (dBm) Figura A.2: Grafico potenza ricevuta/riportata
  • 117.
    Bibliografia [Aam06]K. Aamodt. Texas Instruments CC2431 Location Engine - Application Note AN042. Texas Instruments, 2006. http://focus.ti.com/lit/an/ swra095/swra095.pdf. [BB82] Dana H. Ballard and Christopher M. Brown. Computer Vision. Prentice Hall, 1982. [BCC+ 04] S. Bahadori, D. Calisi, A. Censi, A. Farinelli, G. Grisetti, L. Iocchi, and D. Nardi. Intelligent Systems for Search and Rescue. In Proceedings of Intelligent Robots and Systems Workshop Urban search and rescue: from Robocup to real world applications, 2004. [BEFW97] J. Borenstein, H. Everett, L. Feng, and D. Wehe. Mobile Robot Positio- ning: Sensors and Techniques. Journal of Robotic Systems, 14(4):231–249, 1997. [BFDW03] F. Bourgault, T. Furukawa, and H.F. Durrant-Whyte. Coordinated De- centralized Search for a Lost Target in a Bayesian World. In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, 2003. [BGGT07] Jan Blumenthal, Ralf Grossmann, Frank Golatowski, and Dirk Timmer- mann. Weighted Centroid Localization in Zigbee-based Sensor Networks. In IEEE International Symposium on Intelligent Signal Processing, 2007. [BHE00] N. Bulusu, J. Heidemann, and D. Estrin. GPS-less Low Cost Outdoor Localization For Very Small Devices. IEEE Personal Communication Magazine, 7(5):28–34, 2000. [BMF+ 00] W. Burgard, M. Moors, D. Fox, R. Simmons, and S. Thrun. Collabo- rative Multi-Robot Exploration. In Proceedings of IEEE International Conference on Robotics and Automation, 2000. [BP00] Paramvir Bahl and Venkata N. Padmanabhan. RADAR: An In-Building RF-based User Location and Tracking System. In IEEE INFOCOM, 2000. 103
  • 118.
    Bibliografia 104 [CDNDW01] S. Clark, G. Dissanayake, P. Newman, and H.F. Durrant-Whyte. A So- lution to Simultaneous Localization and Map Building (SLAM) Problem. IEEE Journal of Robotics and Automaton, 17(3), 2001. [CFIN07] Daniele Calisi, Alessandro Farinelli, Luca Iocchi, and Daniele Nardi. Multi- objective Exploration and Search for Autonomous Rescue Robots. J. Field Robot., 24(8-9):763–777, 2007. [Cro07] CrossBow Technology. Avoiding RF Interference Between WiFi and ZigBee, 2007. http://www.xbow.com/Products/Product_pdf_files/ Wireless_pdf/ZigBeeandWiFiInterference.pdf. [Doy95] Alexander Benjamin Doyle. Algorithms and Computational Techniques for Robot Path Planning. PhD thesis, School of Electronic Engineering and Computer Systems, University of Wales, Bangor, 1995. [DR97] Gregory Dudek and Nicholas Roy. Multi-Robot Rendezvous in Unkno- wn Environments. In Proceedings of AAAI International Conference on Artificial Intelligence, 1997. [DWB06a] H.F. Durant-White and T. Bailey. Simultaneous Localization and Map- ping: Part I. IEEE Robotics and Automation Magazine, pages 99–108, June 2006. [DWB06b] H.F. Durant-White and T. Bailey. Simultaneous Localization and Map- ping: Part II. IEEE Robotics and Automation Magazine, pages 108–117, Semptember 2006. [Erg04] Sinem Coleri Ergen. ZigBee/IEEE 802.15.4 Summary. Technical report, Berkeley, September 2004. [Eve95] H. R. Everett. Sensors for Mobile Robots. A. K. Peters, 1995. [FBT99] D. Fox, W. Burgard, and S. Thrun. Markov Localization for Mobile Robots in Dynamic Environments. Journal of Artificial Intelligence Research, 11, 1999. [FGI05] A. Farinelli, G. Grisetti, and L. Iocchi. SPQR-RDK: a Modular Framework for Programming Mobile Robots. In Proceedings of International RoboCup Symposium 2004, pages 653–660, 2005. [GBL01] H.H. Gonz´les-Banos and J.C. Latombe. Navigation Strategies for Ex- a ploring Indoor Environments. International Journal of Robotics Research, 2001.
  • 119.
    Bibliografia 105 [GVS+ 01] B.P. Gerkey, R.T. Vaughan, K. Støy, A. Howard, M.J. Matari´, and G.S. e Sukhatme. Most Valuable Player: A Robot Device Server for Distribu- ted Control. In IEEE/RSJ Intl. Conf. on Intelligent Robots an Systems (IROS), pages 1226–1231, October 2001. [HBB+ 00] D. Hougen, S. Benjaafar, J. Bonney, J. Budenske, M. Dvorak, M. Gini, H. French, D. Krantz, P. Li, F. Malver, B. Nelson, N. Papanikolopou- los, P. Rybski, S. Stoeter, R. Voyles, and K. Yesin. A Miniature Robo- tic System for Reconnaissance and Surveillance. In Proceedings of IEEE International Conference on Robotics and Automation, pages 501–507, 2000. [HHB+ 03] T. He, C. Huang, B. Blum, J. Stankovic, and T. Abdelzaher. Range-free Localization Schemes in Large Scale Sensor Networks, 2003. [HLD07] J.B. Hayet, F. Lerasle, and M. Devy. A Visual Landmark Framework for Mobile Robot Navigation. Image and Vision Computing, 25(8):1341–1351, August 2007. [HMS02] Andrew Howard, Maja J. Mataric, and Gaurav S. Sukhatme. An In- cremental Self- Deployment Algorithm for Mobile Sensor Networks. In Autonomous Robots, special issue on Intelligent Embedded Systems, 2002. [HSI+ 99] Kitano H., Tadokoro S., Noda I., Matsubara H., Takahashi T., Shinjou A., and Shimada S. RoboCup Rescue: Search and Rescue in Large-scale Disasters as a Domain for Autonomous Agents Research. In Proceedings of IEEE International Conference on Systems, Man and Cybernetics, 1999. [IEE06] IEEE Standards 802 Part 15.4. Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-rate Wireless Perso- nal Area Networks (WPANs), June 2006. http://standards.ieee.org/ getieee802/download/802.15.4-2003.pdf. [IR01] ITU-R. Propagation Data and Prediction Methods for the Planning of Indoor Radio Communication Systems and the Radio Local Area Networks in the Frequency Range 900 MHz to 100 GHz, 2001. [Kal60] R.E. Kalman. A New Approach to Linear Filtering and Prediction Problems. Journal of Basic Engineering, 1960. [KPN] Alexander Kleiner, Johann Prediger, and Bernhard Nebel. RFID Technology-based Exploration and SLAM for Search and Rescue.
  • 120.
    Bibliografia 106 [Lan03] Daniel Lang. A Comprehensive Overview About Selected Ad Hoc Net- working Routing Protocols. http://home.leo.org/~dl/TUM-I0311.pdf, 2003. [LW04] Konrad Lorincz and Matt Welsh. A Robust, Decentralized Approach to RF-Based Location Tracking. Technical Report TR-04-04, Harvard University, 2004. [Mat92] Maja Mataric. Integration of Representation into Goal-driven Behavior- based Robots. In IEEE Transactions on Robotics and Automation, 1992. [MFA07] Guoqiang Mao, Barı¸ Fidan, and Brian D. O. Anderson. Wireless Sensor s Network Localization Techniques. Computer Networks, 51(10):2529–2553, 2007. [MLLH06] Yongguo Mei, Yung-Hsiang Lu, C.S.G. Lee, and Y.C. Hu. Energy-efficient Mobile Robot Exploration. In Proceedings of the International Conference on Robotics and Automation, pages 505–511, 2006. [MLM05] J. Minguez, F. Lamiraux, and L. Montesano. Metric-based Scan Matching Algorithms for Mobile Robot Displacement Estimation. In Proceedings of the IEEE International Conference on Robotics and Automation, 2005. [MNG06] Y. Meng, J.V. Nickerson, and J. Gan. Multi-Robot Cooperation Strate- gies in a Searching Task with Limited Communication. In Proceedings of Robotic and Applications, 2006. [MTK] Apurva Mudgal, Craig Tovey, and Sven Koenig. Analysis of Greedy Robot- Navigation Methods. [NA07] Rooker Martijn N. and Birk Andreas. Multi-robot Exploration under the Constraints of Wireless Networking. Control Engineering Practice, 15(4):435–445, 2007. [NN01] D. Niculescu and B. Nath. Ad Hoc Positioning System (APS). In Proceedings of GLOBECOM, November 2001. [NN03] D. Niculescu and B. Nath. Ad Hoc Positioning System (APS) using AOA. In IEEE INFOCOM, 2003. [Pat05] Neal Patwari. Location Estimation in Sensors Networks. PhD thesis, University of Michigan, 2005. [PD03] Larry L. Peterson and Bruce S. Davie. Computer Networks: A System Approach. Morgan Kaufman, 2003.
  • 121.
    Bibliografia 107 [Per03] C. Perkins. Ad hoc On-Demand Distance Vector (AODV) Routing, July 2003. http://www.ietf.org/rfc/rfc3561.txt. [PHP+ 03] N. Patwari, A. O. Hero, M. Perkins, N. S. Correal, and R. J. ODea. Lo- cation Estimation in Wireless Sensor Networks. In IEEE Transactions on Signal Processing, volume 51, August 2003. [Rap01] Theodore Rappaport. Wireless Communications: Principles and Practice. Prentice Hall PTR, Upper Saddle River, NJ, USA, 2001. [RB05] Martijn N. Rooker and Andreas Birk. Combining Exploration and Ad-Hoc Networking in RoboCup Rescue. In Nardi Daniele, Riedmiller Martin, and Sammut Claude, editors, RoboCup 2004: Robot Soccer World Cup VIII, volume 3276 of Lecture Notes in Artificial Intelligence (LNAI), pages 236–246. Springer, 2005. [SACO06] Rajeev Shorey, Kkihebbal L. Ananda, Mun Choon Chan, and Wei Tsang Ooi. Mobile, Wireless, and Sensor Networks - Technology, Applications, and Future Directions. John Wiley & Sons, 2006. [Sau00] Simon R. Saunders. Antennas and Propagation for Wireless Communications Systems. John Wiley and Sons, 2000. [SAY99] Alan C. Schultz, William Adams, and Brian Yamauchi. Integrating Exploration, Localization, Navigation and Planning with a Common Representation. Autonomous Robots, 6(3):293–308, 1999. [SB03] C. Stachniss and W. Burgard. Exploring Unknown Environments with Mobile Robots using Coverage Maps. In Proceedings of the International Conference on Artificial Intelligence, 2003. [Sem06] Freescale Semiconductors. Compact Integrated Antennas Designs and Applications for the MC1319x, MC1320x, and MC1321x, 2006. http: //www.freescale.com. [Sem07a] Freescale Semiconductors. MC13211/212/213 ZigBee Compliant Platform - 2.4 GHz Low Power Transceiver for the IEEE 802.15.4 Standard plus Microcontroller, 2007. http://www.freescale.com. [Sem07b] Freescale Semiconductors. MC1321x Evaluation Kit (EVK) - Reference Manual, 2007. http://www.freescale.com. [Sey00] John S. Seybold. Introduction to RF propagation. John Wiley and Sons, 2000.
  • 122.
    Bibliografia 108 [SHS01] A. Savvides, C. Han, and M. Srivastava. Dynamic Fine-grained Localiza- tion in Ad-Hoc Networks of Sensors. In Proceedings of ACM MobiCom, pages 166–179, July 2001. [SKOM06] Masashi Sugano, Tomonori Kawazoe, Yoshikazu Ohta, and Masayuki Mu- rata. Indoor Localization System Using RSSI Measurement of Wireless Sensor Network Based on ZigBee Standard, 2006. [SN04] Roland Siegwart and Illah R. Nourbakhsh. Introduction to Autonomous Mobile Robots. MIT Press, 2004. [SRZF07] Y. Shang, W. Ruml, Y. Zhang, and M. P. J. Fromherz. Localization from Mere Connectivity. In Fourth ACM International Symposium on Mobile Ad-Hoc Networking and Computing, June 2007. [TBF05] S. Thrun, W. Burgard, and D. Fox. Probabilistic Robotics. MIT Press, 2005. [TFB98] S. Thrun, D. Fox, and W. Burgard. A Probabilistic Approach to Con- current Mapping and Localization for Mobile Robots. Machine Learning, 31:29–53, 1998. [TFBD00] S. Thrun, D. Fox, W. Burgard, and F. Dellaert. Robust Monte Carlo Localization for Mobile Robots. Artificial Intelligence, 128(1-2):99–141, 2000. [Thr95] S. Thrun. Exploration in Active Learning, 1995. [TK93] C.J. Tailor and D.J. Kriegman. Exloration Strategies for Mobile Robo- ts. In Proceedings of the IEEE International Conference on Robotics and Automation, pages 248–253, 1993. [TK03] C. Tovey and S. Koenig. Improved Analysis of Greedy Mapping. In Procee- dings of IEEE International Conference on Intelligent Robots and Systems, pages 3251–3257, 2003. [TKT+ 00] Satoshi Tadokoro, Hiroaki Kitano, Tomoichi, Takahashi, Itsuki Noda, Hi- toshi Matsubara, Atsuhi Shinjoh, Tetsuya Koto, Ikuo Takeuchi, Hironao Takahashi, Fumitoshi Matsuno, Mitsuo Hatayama, Jun Nobe, and Su- sumu Shimada. The RoboCup-Rescue Project: A Robotic Approach to the Disaster Mitigation Problem. In Proceedings of IEEE International Conference on Robotics and Automation, 2000.
  • 123.
    Bibliografia 109 [WLG03] J. Wang, M. Lewis, and J. Gennari. Interactive Simulation of the NIST USAR Arenas. In IEEE International Conference on Systems, Man, and Cybernetics, pages 1350–1354, 2003. [XKC97] Yun Xiaoping and Tan Ko-Cheng. A Wall-following Method for Escaping Local Minima in Potential Field Based Motion Planning. In Proceedings of 8th International Conference on Advanced Robotics, 1997. [Yam97] Brian Yamauchi. A Frontier-Based Approach for Autonomous Explora- tion. In Proceedings of the IEEE International Conference on Robotics and Automation, 1997. [Yam98] Brian Yamauchi. Frontier-based exploration using multiple robots. In AGENTS ’98: Proceedings of the second international conference on Autonomous agents, pages 47–53, New York, NY, USA, 1998. ACM. [YSA98] Brian Yamauchi, Alan Schultz, and Williams Adams. Mobile Robot Ex- ploration and Map-Building with Continuous Localization. In Procee- dings of the International Conference on Robotics and Automation, pages 3715–3720, 1998. [Zig06] ZigBee Alliance. ZigBee-2006 Specification, December 2006. http://www. zigbee.org/en/spec_download/zigbee_downloads.asp. [ZKNN07] V.A. Ziparo, A. Kleiner, B. Nebel, and D. Nardi. RFID-Based Explora- tion for Large Robot Teams. In Proceedings of the IEEE International Conference on Robotics and Automation, pages 4606–4613, 2007. [ZLV07] P. Zebrowski, Y. Litus, and R.T. Vaughan. Energy Efficient Robot Ren- dezvous. In Fourth Canadian Conference on Computer and Robot Vision, 2007.
  • 124.
    A Questa tesi `stata scritta interamente utilizzando il software L TEX2e e