Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
A.Dionisi Thesis
1. `
Facolta di Ingegneria
Tesi di Laurea Specialistica in
Ingegneria Informatica
Esplorazione per Robot Mobili basata su
Dispositivi ZigBee
Alessandro Dionisi
Relatore Controrelatore
Prof. Luca Iocchi Prof. Roberto Beraldi
Correlatore
Dott. Ing. Vittorio Amos Ziparo
Anno Accademico 2006/2007
2. `
Facolta di Ingegneria
Tesi di Laurea Specialistica in
Ingegneria Informatica
Esplorazione per Robot Mobili basata su
Dispositivi ZigBee
Alessandro Dionisi
Relatore Controrelatore
Prof. Luca Iocchi Prof. Roberto Beraldi
Correlatore
Dott. Ing. Vittorio Amos Ziparo
Anno Accademico 2006/2007
3. “Debugging is twice as hard as writing the code in the first place. Therefore, if you
write the code as cleverly as possible, you are, by definition, not smart enough to debug
it.”
Brian W. Kernighan
4. Ringraziamenti
Questo lavoro di tesi ` nato innanzitutto grazie alla disponibilit` del Prof. Beraldi,
e a
che appresi i miei interessi per le tecnologie wireless ha saputo indirizzarmi verso il
laboratorio SIED. Ringrazio ovviamente il mio relatore, il Prof. Iocchi, per avermi dato
la possibilit` di affrontare un progetto stimolante e per avermi indicato sempre la giusta
a
soluzione ai problemi che continuamente si sono presentati. La mia riconoscenza va
inoltre al Prof. Nardi per avermi accolto come tesista nel laboratorio SIED.
Ringrazio tutti i dottori, dottorandi e ingegneri del laboratorio, tra cui Alberto, Die-
go, Domenico, Gabriele, Gianpaolo, Giuseppe, Stefano, per i loro preziosi suggerimenti
e in particolare Arrigo, Daniele e Vittorio, per il costante supporto fornito durante tutto
il periodo di tesi.
`
E doveroso da parte mia ringraziare tutti i colleghi tesisti Gianluca, Giuliano, Jo˜o,
a
Luigi, Stefano, Valerio, per i loro consigli e per aver reso meno pesanti le giornate
trascorse al SIED. La mia riconoscenza va inoltre ai ragazzi dell’RFID-Lab, in particolare
al Prof. Medaglia e a Leonardo, per avermi riservato parte del loro tempo.
Un ringraziamento speciale ` destinato a Michela, per essermi stata cos` vicino, con
e ı
il cuore e con la mente, in questo periodo impegnativo della mia vita.
Desidero infine rigraziare tutta la mia famiglia, in particolare i miei genitori Giorgio
e Cinzia, mio fratello Francesco, i miei nonni Franco e Gina per avermi supportato
psicologicamente e moralmente durante tutti questi splendidi anni all’universit`.
a
ii
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
15. Introduzione
La possibilit` di creare reti a basso costo e ad alta densit` come le Wireless Sensor
a a
Network (WSN) ha introdotto scenari applicativi prima irrealizzabili, che vanno dal mo-
nitoraggio di impianti alla domotica. Le loro capacit` di mobilit` ed auto-organizzazione,
a a
con la caratteristica, inoltre, di non dipendere da un’infrastruttura di rete fissa, le hanno
rese ormai l’icona dell’Ubiquitous Computing.
La funzione principale di una WSN ` quella di riportare eventi relativi all’ambiente
e
controllato, oltre a trasportare dati e informazioni provenienti dai molteplici sensori pre-
senti. In letteratura, tuttavia, ` sempre pi` frequente l’idea di aggiungere funzionalit`
e u a
differenti dal controllo e dal monitoraggio; si pensi ad esempio al contributo informativo
apportato dalla localizzazione di un sensore, oltre al valore della grandezza fisica misu-
rata. In definitiva, per un utente ` importante sapere, sia che una soglia di attenzione `
e e
stata superata, sia in quale punto preciso della rete, dato che informazioni non associate
alla loro localizzazione potrebbero essere prive di significato.
Le possibilit` offerte dalle WSN e dalle capacit` di localizzare dei nodi al loro interno
a a
[MFA07], le rendono appetibili anche nel campo della robotica, ad esempio per l’impiego
`
su robot mobili. E facile immaginare come informazioni sulla localizzazione di punti di
interesse possano divenire di estrema importanza in problemi di SLAM (Simultaneous
Localization and Mapping) [DWB06a, DWB06b] oppure per diminuire i tempi nella
ricerca di oggetti o zone particolari. Si comprende inoltre, quanto ci` sia di interesse
o
primario in ambienti indoor (industrie, uffici, abitazioni), o dove comunque non c’` la
e
possibilit` di utilizzare altri sistemi di posizionamento (come ad esempio GPS).
a
Attualmente, l’esplorazione rappresenta la tecnica principale mediante il quale pos-
sono essere risolti i problemi di ricerca [BFDW03, BCC+ 04] in ambienti non noti a
priori, in quanto gradualmente l’area sconosciuta viene ridotta, fino a permettere di
trovare l’obiettivo. Se ne deduce facilmente che, se non si hanno informazioni ag-
giuntive sulla localizzazione dell’obiettivo, si procede praticamente per tentativi, con
una ricerca cieca. Effettivamente, questa ` la metodologia seguita da molti approcci
e
[Yam98, BMF+ 00, KPN, MTK, SB03] che si basano sul concetto di frontiera di esplo-
razione [Yam97], ovvero la zona di confine tra lo spazio noto e quello inesplorato. In
tali sistemi, l’esplorazione procede ad ogni passo visitando una frontiera, diminuendo in
1
16. Introduzione 2
questo modo lo spazio di ricerca. Il problema principale, risiede nel fatto che la selezione
della frontiera viene effettuata casualmente o al massimo con strategie greedy (scegliendo
ad esempio quella pi` vicina al robot), dato che in molti casi non si hanno altre sorgenti
u
informative per procedere diversamente.
Lo scopo di questa tesi ` l’integrazione di sistemi di robotica mobile con gli strumenti
e
e le potenzialit` offerte dalle WSN, mediante un’applicazione di supporto alla localizza-
a
zione. L’approccio utilizzato in questo lavoro di tesi sfrutta le informazioni sulla qualit`
a
del segnale radio (Link Quality Indicator ) ricevuto dai nodi della WSN, installati a bordo
del robot, per guidarne l’esplorazione al fine di raggiungere zone di interesse segnalate da
altrettanti dispositivi. Come vedremo, alla rete possono appartenere sia i robot, sia altri
nodi che possono segnalare oggetti o essere rilasciati durante l’esplorazione stessa, con
la funzione di landmark [SN04]. I dispositivi selezionati per la realizzazione del sistema
seguono lo standard per le LR-WPAN (Low-Rate Wireless Personal Area Network), Zig-
Bee. La scelta di questa tecnologia ` avvenuta dopo un’ampia fase di studio, effettuata
e
presso il laboratorio RFID-Lab, dell’Universit` di Roma “Sapienza”, in cui sono stati
a
considerati attentamente i requisiti del sistema da realizzare.
Occorre notare che, in questo lavoro, non si cerca di risolvere un problema di loca-
lizzazione wireless assoluta, affrontato gi` ampiamente in altri lavori [Pat05, BGGT07,
a
SKOM06, PHP+ 03, BP00, HHB+ 03] e peraltro di non facile soluzione se si considera-
no ambienti indoor, a causa di fenomeni fisici come attenuazione e multipath [Rap01].
Tali considerazioni hanno richiesto un lungo periodo di sperimentazione, in cui sono
stati realizzati test sia in ambienti outdoor che indoor, orientati a dimostrare quanto
gi` noto in letteratura e a far comprendere le modalit` con cui affrontare un problema
a a
di localizzazione basato su dispositivi wireless. L’approccio proposto tenta di applicare
i meccanismi alla base della localizzazione, al problema dell’esplorazione, presentandosi
come un algoritmo in grado di guidare il robot verso l’obiettivo della ricerca, mediante
un’euristica che si basa sul principio elementare per cui la potenza del segnale decresce
con la distanza. In questo modo, anche se ` difficile ricavare esattamente la distanza che
e
separa trasmettitore e ricevitore, ` possibile stimare qualitativamente quanto si ` vicini
e e
alla sorgente del segnale. Di conseguenza, la ricerca che prima era cieca, si trasforma in
ricerca informata, con il vantaggio non indifferente che per la scelta della prossima fron-
tiera da esplorare, il robot avr` a disposizione qualcosa in pi` di una semplice strategia
a u
greedy.
La possibilit` di effettuare un’esplorazione guidata aiuta, oltre che a diminuire i
a
tempi di ricerca, anche ad aumentare l’autonomia energetica del robot, evitando zone
dell’ambiente non rilevanti ai fini della missione. Uno degli scenari mediante il quale
si pu` comprendere l’utilit` dell’idea presentata, ` l’impiego del sistema in problemi di
o a e
Search and Rescue [HSI+ 99], in cui i robot mobili forniscono il loro supporto a squadre
di soccorritori umani, in operazioni di ricerca e salvataggio in ambienti che hanno subito
17. Introduzione 3
`
catastrofi o devastazioni, ad alto rischio per i soccorritori stessi. E facile immaginare
come informazioni sulla localizzazione di punti di interesse (ostacoli, feriti, punti di
raccolta, altri robot) possano divenire di estrema importanza per diminuire i tempi di
esplorazione di aree devastate, con la conseguenza di aumentare la probabilit` di salvare
a
anche vite umane. Inoltre, considerate le possibilit` di miniaturizzazione che possono
a
essere raggiunte nella produzione di dispositivi ZigBee, possiamo pensare ad uno scenario
in cui ogni persona pu` indossare un ricevitore e che, nel caso di incidenti o devastazioni,
o
esso possa essere interrogato, in modo da facilitare il raggiungimento della vittima stessa.
Ad esempio, tali situazioni possono verificarsi in impianti industriali ad alto rischio, dove
sono potenzialmente possibili incendi, crolli strutturali o emissioni di sostanze tossiche.
Altri possibili esempi di applicazione, in cui l’approccio pu` portare i suoi vantaggi,
o
sono il problema del rendezvous [DR97, ZLV07] tra robot, il deployment di reti ad-
hoc in situazioni di emergenza [RB05, HMS02] e alcuni scenari di sorveglianza robotica
[HBB+ 00].
Questa tesi si focalizza sul problema base del raggiungimento da parte di un robot
mobile equipaggiato con un dispositivo wireless ZigBee di un punto di interesse dove `
e
presente un altro di questi dispositivi, non in movimento. La soluzione di tale problema,
per motivi di complessit`, non considera un ambiente multi-robot, ma ` sicuramente
a e
estendibile a scenari di tale tipologia. Il sistema ` stato implementato in C++, su piat-
e
taforma Unix, sotto forma di moduli indipendenti per il framework per robot mobili
SPQR-RDK [FGI05]. La tesi ` stata sviluppata presso il laboratorio SIED (Sistemi
e
Intelligenti per le Emergenze e la Difesa civile), nato dalla collaborazione tra l’Istituto
Superiore Antincendi ed il Dipartimento di Informatica e Sistemistica (DIS) dell’Univer-
sit` di Roma “Sapienza”, con l’obiettivo di svolgere attivit` di ricerca volte allo sviluppo
a a
di metodologie, tecniche e strumenti prototipali da utilizzare in operazioni di soccorso.
Problematiche affrontate
La realizzazione di questo lavoro mi ha permesso di studiare diverse problematiche,
inerenti sia al campo delle reti di sensori che della robotica mobile. In particolare sono
stati affrontati i seguenti temi:
• Sperimentazione e selezione, presso l’RFID-Lab, di una piattaforma hardware/-
software per WSN, al fine di individuarne una idonea all’implementazione di un
sistema di localizzazione wireless.
• Studio del protocollo per LR-WPAN ZigBee, in particolare gli strati MAC, rete e
applicazione, in modo da acquisire i primi strumenti concettuali e applicativi per
progettare e implementare piccole applicazioni.
18. Introduzione 4
• Analisi delle prestazioni trasmissive dell’hardware selezionato, in ambienti indoor,
outdoor e in condizioni statiche e dinamiche, con lo scopo di comprendere le
potenzialit` da sfruttare per effettuare localizzazione.
a
• Studio della letteratura riguardante i diversi approcci alla localizzazione wireless
e all’esplorazione per robot mobili, in modo da ottenere una visione completa di
quanto gi` realizzato e avere solidi concetti base da cui iniziare il lavoro.
a
• Progettazione di un algoritmo per l’esplorazione di ambienti indoor semistrutturati,
basato sulla qualit` del segnale ricevuto da dispositivi ZigBee. Tutto ci` a seguito
a o
dei risultati ottenuti in fase di test dei dispositivi in trasmissione.
• Modifica di alcuni moduli del kernel, per garantire l’interfacciamento dei dispositivi
ZigBee anche su sistemi operativi Unix, in quanto originariamente erano presenti
solo driver funzionanti per Windows.
• Implementazione dell’algoritmo e dei componenti di interfaccia verso il dispositivo
ZigBee in linguaggio C++, sotto forma di moduli software indipendenti per il
framework SPQR-RDK.
• Test del sistema in simulazione, nell’ambiente Player/Stage, e in ambiente reale, sui
robot mobili del laboratorio SIED, con lo scopo di dimostrare i risultati conseguiti
e i vantaggi introdotti con l’approccio scelto.
Risultati conseguiti
La grande quantit` di dati sperimentali, raccolti durante l’analisi delle prestazioni tra-
a
smissive dei dispositivi, in ambienti indoor e outdoor, ha permesso di ritrovare i risultati
teorici noti in letteratura e, allo stesso tempo, trasformare il problema iniziale di localiz-
zazione wireless assoluta in un nuovo approccio all’esplorazione per robot mobili, basato
sulla qualit` del segnale ricevuto dai dispositivi di una WSN.
a
Le sperimentazioni effettuate, sia in simulazione che in ambiente reale, dimostrano
l’efficacia dell’approccio proposto. L’aggiunta dell’informazione sulla qualit` del segnale,
a
consente di risolvere i problemi di ricerca in modo informato, evitando l’esplorazione
di zone dell’ambiente eccessivamente distanti dall’obiettivo. La scelta delle frontiere
viene effettuata in base alla vicinanza con la sorgente del segnale, sostituendo strategie
greedy che spesso non creano vantaggi considerevoli. In questo modo, ` sicuramente
e
possibile diminuire i tempi necessari all’individuazione di punti di interesse nella mappa e
incrementare notevolmente l’autonomia energetica del robot utilizzato per l’esplorazione.
Ovviamente, l’euristica pensata pu` essere raffinata, tenendo in considerazione anche
o
informazioni di natura topologica sull’ambiente o elaborando le variazioni del segnale ri-
cevuto rispetto al percorso eseguito dal robot (considerando, in alcuni istanti, il gradiente
19. Introduzione 5
del LQI). L’idea presentata pu` inoltre essere estesa a scenari multi-robot, agevolando
o
la soluzione di problemi come il rendezvous [DR97] o il coordinamento durante alcune
fasi dell’esplorazione multiagente [ZKNN07].
Traccia dell’esposizione
L’esposizione ` organizzata come segue:
e
• Capitolo 1: Presentazione di tematiche relative all’esplorazione di robot mobili e
dei componenti hardware/software necessari per l’esplorazione autonoma. Ven-
gono descritti i concetti e gli strumenti della robotica disponibili per sviluppare
l’approccio descritto, sottolineando alcune tecniche per l’esplorazione autonoma.
• Capitolo 2: Introduzione agli approcci per la localizzazione wireless e descrizione
dei fenomeni fisici che influenzano le trasmissioni wireless. Lo studio effettuato, ha
permesso di comprendere in dettaglio i problemi da tenere in considerazione nella
realizzazione di un sistema di localizzazione.
• Capitolo 3: Descrizione dello standard per le LR-WPAN, ZigBee, focalizzando
l’attenzione sulle funzionalit` dello stack che sono risultate di interesse per nel-
a
la valutazione e la successiva implementazione delle applicazioni. Tale studio ha
permesso di avere le prime indicazioni da cui partire per risolvere un problema di lo-
calizzazione, ottenute analizzando le informazioni restituite dalle primitive relative
alla qualit` del segnale (Link Quality Indicator ). Sono inoltre riportate le motiva-
a
zioni che hanno portato alla selezione di dispositivi ZigBee per la realizzazione di
questo lavoro di tesi.
• Capitolo 4: Illustrazione di esperimenti indoor/outdoor sulla variazione della qua-
lit` del segnale e presentazione della piattaforma hardware selezionata per gli espe-
a
rimenti. Il capitolo contiene i numerosi test trasmissivi, effettuati al fine di deter-
minarne l’idoneit` alla realizzazione di un sistema di localizzazione. La grande
a
quantit` di dati raccolti ci ha permesso, non solo di verificare in parte alcuni
a
concetti teorici sulle trasmissioni wireless, ma anche di definire gradualmente il
problema reale che si voleva risolvere.
• Capitolo 5: In questo capitolo viene illustrata l’idea dominante di questa tesi, ov-
vero l’uso dell’informazione sulla qualit` del segnale per effettuare una esplorazione
a
guidata. Viene fatta una descrizione approfondita dell’algoritmo euristico ideato,
motivando le scelte effettuate nella sua progettazione. Vengono inoltre citati alcuni
scenari significativi di applicazione.
20. Introduzione 6
• Capitolo 6: Descrizione delle scelte implementative, sia per quanto riguarda l’appli-
cazione caricata sui dispositivi ZigBee, sia per i moduli SPQR-RDK in esecuzione
sul robot. Viene inoltre presentata la sperimentazione dell’algoritmo in ambiente
simulato Player/Stage e sul robot reale “Rotolotto”.
• Capitolo 7: Il capitolo illustra i risultati conseguiti, considerando le possibili
estensioni applicabili al sistema realizzato.
22. Capitolo 1
Robot per l’esplorazione
autonoma
I robot sono impiegati nell’industria fin dal 1961, quando la General Motors inser` nella
ı
sua linea di assemblaggio Unimate, un braccio meccanico utilizzato per saldare parti
di automobili. Attualmente essi sono usati ampiamente in applicazioni ripetitive e di
precisione, come il montaggio di componenti su circuiti stampati; ad ogni modo questi
robot sono immobili.
La possibilit` di avere robot mobili pu` espandere notevolmente gli scenari in cui essi
a o
possono fornire il loro contributo. Una delle applicazioni pi` importanti della robotica
u
mobile consiste nell’esplorazione di ambienti non noti a priori, da parte di uno o pi`
u
veicoli autonomi. Tale esigenza sorge tipicamente ogni qualvolta un robot mobile venga
impiegato per missioni in ambienti sconosciuti od ostili, in cui l’intervento umano sia
difficile o pericoloso (sorveglianza, demining, soccorso, esplorazione planetaria, ecc.).
La capacit` di movimento per un robot introduce nuove problematiche: esso deve
a
conoscere la sua corretta posizione rispetto al mondo reale, in modo da poter scegliere in
modo razionale quale azione compiere. Mediante l’esplorazione autonoma ` possibile co-
e
struire in automatico una mappa accurata dello spazio di lavoro in cui il robot si muove,
a partire dalle misure fornite dai sensori con cui ` equipaggiato (laser scanner, sonar, vi-
e
deocamere, ecc.). Con l’ausilio della mappa costruita ` possibile coordinare i movimenti
e
e gli spostamenti del robot al fine di raggiungere delle zone particolari nell’ambiente di
interesse. Al raggiungimento di questa autonomia comportamentale concorrono quindi
numerosi fattori, che vanno dalla capacit` di estrarre informazioni significative dai dati
a
sensoriali e di costruire un modello (eventualmente dinamico) dell’ambiente circostan-
te, a quella di elaborare, talvolta impiegando sistemi inferenziali, una linea di azione
praticabile, che garantisca il raggiungimento degli obiettivi previsti.
Questo capitolo ha lo scopo di introdurre i concetti e gli strumenti disponibili nel-
l’ambito della robotica, per sviluppare l’approccio descritto in questa tesi. Vengono
8
23. Capitolo 1. Robot per l’esplorazione autonoma 9
inoltre introdotte alcune conoscenze di base sui robot idonei all’esplorazione autonoma,
mettendo in evidenza l’importanza dei sensori impiegati e dei moduli software necessari
alla navigazione. Una sezione ` riservata alla descrizione di alcuni approcci esistenti per
e
effettuare esplorazione autonoma, mentre la parte conclusiva ha lo scopo di presentare
gli strumenti software disponibili, come i simulatori e il framework per robot mobili,
SPQR-RDK.
1.1 Possibili scenari
Un robot mobile, in grado di esplorare autonomamente un ambiente, introduce sicura-
mente nuove possibilit`. Nel seguito vengono descritti alcuni scenari significativi, in cui
a
essi forniscono il loro importante contributo, sostituendo effettivamente o potenzialmente
operatori umani.
Ambiente domestico e medico Uno dei primi impieghi dei robot mobili ` stato quel-
e
lo di sostituire l’uomo in task ripetitivi in ambiente domestico, come pulire i pa-
vimenti o tagliare l’erba. Uno scenario altrettanto importante ` quello di fornire
e
servizi di assistenza alla persona, in strutture mediche o paramediche (si veda ad
esempio il progetto RoboCare1 ). All’interno della RoboCup 2 , esiste da qualche
anno la competizione RoboCup@Home, in cui viene incoraggiato lo sviluppo di
applicazioni robotiche in grado di assistere l’uomo nelle operazioni di tutti i giorni.
Sicurezza L’utilizzo di robot in ambienti dove la sicurezza ` importante sta guada-
e
gnando sempre maggiori spazi, ad esempio in ambienti dove l’intervento umano
` rischioso (demining, operazioni militari) o dove il monitoraggio richiede accura-
e
tezza e tempestivit` (sorveglianza). Altri possibili impieghi prevedono il controllo
a
ambientale, per rilevare la presenza di sostanze tossiche, fumi o radiazioni in aree
industriali.
Soccorso Gli interventi in emergenza condotti in ambienti disastrati, rischiosi per l’uo-
mo e con tempi limitati sono di vitale importanza per operazioni antincendio, di
salvataggio o di tipo militare. L’utilizzo di robot al posto di operatori umani o
come supporto in tali condizioni pu` ridurre drasticamente i rischi possibili. Tali
o
scenari vengono spesso denominati Search and Rescue e sono il tema principale
della competizione RoboCup Rescue [TKT+ 00, HSI+ 99], in cui viene incoraggiato
lo sviluppo e la ricerca nell’ambito del soccorso robotico.
1
http://robocare.istc.cnr.it.
2
La RoboCup ` una competizione fra robot autonomi a livello mondiale, che si disputa annualmente,
e
col tentativo di promuovere l’intelligenza artificiale, la robotica e altri campi di ricerca correlati.
24. Capitolo 1. Robot per l’esplorazione autonoma 10
Esplorazioni in condizioni estreme La possibilit` di progettare robot in grado di
a
lavorare in qualsiasi condizione, permette di ampliare gli scenari di esplorazio-
ne, estendendoli ad ambienti invivibili per l’uomo, come l’esplorazione planetaria
(si pensi al celebre Sojourner, utilizzato nella missione Pathfinder su Marte) o
subacquea.
1.2 Tipi di robot
Le caratteristiche funzionali e di mobilit` che un robot pu` possedere dipendono quasi
a o
totalmente dall’ambiente in cui esso si trover` ad operare. Una classificazione comune `
a e
la seguente:
Unmanned Ground Vehicle (UGV): Sono veicoli terrestri, adatti all’esplorazione
di ambienti indoor e outdoor sia strutturati che destrutturati. I pi` comuni utiliz-
u
zano ruote, ma ne esistono vari tipi cingolati e con zampe (i cosiddetti legged ) che
consentono di superare le asperit` del terreno.
a
Unmanned Aerial Vehicle (UAV): Si tratta di velivoli o elicotteri, nella maggior
parte dei casi teleguidati. Essi consentono di effettuare esplorazioni dall’alto e
talvolta agire da ripetitori per estendere comunicazioni wireless.
Autonomous Underwater Vehicle (AUV): Sono veicoli per subacquei, in grado di
raggiungere fino a 6000 m di profondit`. Attualmente sono ampiamente utilizzati
a
per il monitoraggio di condutture sottomarine.
In figura 1.1 ` possibile osservare alcuni esempi dei robot appena descritti.
e
1.2.1 Robot del laboratorio SIED
In questa sezione vengo descritti i principali robot presenti nel laboratorio SIED, che
sono stati utilizzati intensivamente per la sperimentazione del lavoro effettuato.
“Piccolotto”
Il robot Piccolotto era in origine un Pioneer P2-DX, ora monta un controller per mo-
tori Videre e un laser scanner Hokuyo URG-04LX, entrambi connessi ad un hub USB
collegato ad un notebook 12 IBM, su cui viene eseguito il software di navigazione e
l’interfacciamento mediante Player (descritto al paragrafo 1.5.1). Possiede due ruote
motrici indipendenti nella parte anteriore e una ruota castor omnidirezionale nella parte
posteriore.
25. Capitolo 1. Robot per l’esplorazione autonoma 11
(a) Un Pioneer P2-DX (b) Un quadrirotore Asctec X3D-BL
(c) L’HSV Swift della Bluefin Robotics
Figura 1.1: Alcuni robot esploratori
“Rotolotto”
Esso ` un Pioneer P2-AT con quattro ruote motrici, disposte a coppie di due, e prende il
e
suo nome dalla forma dell’onboard PC. Il suo equipaggiamento include un laser scanner
Sick LMS200, sensori sonar e supporto per un’unit` pan-tilt con stereocamera.
a
(a) Il robot “Piccolotto” (b) Il robot “Rotolotto”
Figura 1.2: Alcuni robot mobili presenti nel laboratorio SIED
26. Capitolo 1. Robot per l’esplorazione autonoma 12
1.3 Moduli funzionali di un robot esploratore
In figura 1.3 ` rappresentata una schematizzazione che rappresenta bene le relazioni
e
tra i componenti funzionali di un robot idoneo all’esplorazione autonoma, presente in
[SN04]. Da questa si comprende immediatamente l’importanza di sensori e attuatori,
con i quali viene gestita l’acquisizione di informazioni e l’interazione con l’ambiente rea-
le. Mediante l’interpretazione dei dati grezzi provenienti dai sensori, vengono costruiti
modelli rappresentativi dell’ambiente (come ad esempio mappe) e ricavate informazioni
sulla posizione del robot all’interno di esso (localizzazione). In base alla strategia desi-
derata ad alto livello (obiettivi di missione), al fine di permettere al robot di raggiungere
l’obiettivo globale prefissato, i moduli di pianificazione provvedono a stabilire i compiti
da assegnare ai componenti di basso livello, come gli attuatori, in modo da garantire la
corretta navigazione del robot verso i vari target. Va notato che per svolgere attivit`
a
di locomozione autonoma ` necessario risolvere una grande variet` di problemi, come il
e a
controllo del movimento (motion control ), il superamento di ostacoli e il rilevamento di
situazioni critiche.
Knowledge, Mission
Data Base Commands
Localization “Position” Cognition
Map Building Global Map Path Planning
Environment Model Path
Local Map
Information Path
Extraction and Execution
Motion Control
Interpretation
Perception
Raw data Actuator Commands
Sensing Acting
Real World
Environment
Figura 1.3: Schematizzazione di un robot mobile
Nelle prossime sezioni tali componenti verranno descritti singolarmente, fornendo
una panoramica che aiuter` a comprendere concetti utilizzati nell’ambito di tutta la
a
tesi.
27. Capitolo 1. Robot per l’esplorazione autonoma 13
1.3.1 Sensori e tecniche per l’esplorazione
Una delle funzioni pi` importanti funzionalit` di un sistema autonomo ` acquisire infor-
u a e
mazioni sull’ambiente che lo circonda, utilizzando misurazioni provenienti da vari sensori
ed estraendone informazioni significative. Esiste un’ampia variet` di sensori impiegati
a
nei robot mobili; alcuni misurano semplici valori come temperature esterne o velocit` di
a
rotazione dei motori. Altri, pi` sofisticati, possono essere usati per ricavare la posizione
u
del robot, ad esempio rispetto agli ostacoli o a punti di interesse per la sua missione.
Dato che il robot ` continuamente in movimento, frequentemente incontrer` caratte-
e a
ristiche dell’ambiente impreviste, per cui le funzionalit` di sensoristica sono alquanto
a
critiche. Inoltre, dato che ogni sensore acquisisce informazioni incerte sull’ambiente, so-
no necessari strumenti stocastici per mantenere limitate ed accettabili la rumorosit` dei
a
dati. Per una trattazione abbastanza completa sui sensori per robot mobili si consulti
[Eve95].
Nelle sezioni seguenti verranno elencati alcuni dei pi` importanti sensori e tecni-
u
che utilizzate per l’esplorazione e la navigazione; gran parte di essi sono presenti del
laboratorio SIED e installati sui robot utilizzati per gli esperimenti descritti in questa
tesi.
1.3.1.1 Odometria
L’odometria ` uno dei metodi pi` utilizzati per conoscere la posizione di robot mobili, in
e u
quanto fornisce una discreta precisione su brevi distanze, non ha alti costi di applicazione
ed ` facilmente integrabile con altri metodi di localizzazione che invece danno misure
e
pi` accurate.
u
L’idea di base della ricostruzione odometrica ` quello del calcolo della nuova posizione
e
del robot in base alla strada percorsa rispetto alla posizione precedente (dead-reckoning).
Il calcolo avviene tramite l’integrazione nel tempo dell’informazione sul movimento. Per
ricavare i valori da integrare, l’odometria utilizza degli encoder, attaccati agli assi delle
ruote o all’armatura del motore, che vanno a misurare la velocit` di rotazione delle ruote
a
e l’orientazione dello sterzo (basandosi sul principio che la rotazione compiuta da una
ruota pu` essere tradotta in spostamento lineare).
o
Questo metodo causa inevitabilmente l’accumularsi di errori, soprattutto di orien-
tazione che causano a loro volta errori in posizione, che crescono proporzionalmente
alla distanza percorsa. Gli errori dell’odometria possono essere sistematici (causati ad
esempio da diametri delle ruote diseguali o disallineate) o non sistematici (movimento
su terreno irregolare e slittamenti delle ruote).
28. Capitolo 1. Robot per l’esplorazione autonoma 14
1.3.1.2 Sensori inerziali
Come accade per l’odometria, l’utilizzo di sensori inerziali non richiede punti di rife-
rimento assoluti. Essa per calcolare la posizione del robot utilizza invece giroscopi e
accelerometri; i primi misurano la velocit` di rotazione, i secondi invece l’accelerazione.
a
La navigazione inerziale si basa su misurazioni dinamiche, a breve termine, senza
necessit` di avere informazioni esterne sulla dinamica del robot, poich´ i dati sono ricavati
a e
tramite misurazioni dirette. Il grosso svantaggio nell’impiego di sensori inerziali per`, `
o e
dovuto al fatto che per ottenere l’orientazione e la posizione bisogna integrare una volta
e due volte rispettivamente la velocit` di rotazione e l’accelerazione, generando quindi
a
errori in posizione che crescono in modo integrale col tempo (deriva). Come visto per
l’odometria, la localizzazione mediante questo metodo non ` adatta a stime accurate per
e
un lungo periodo di tempo.
1.3.1.3 Sonar
Il sonar ` un dispositivo che sfrutta la propagazione di onde sonore (spesso ultrasuo-
e
ni) per misurare la distanza da un oggetto. Come ` facile osservare in figura 1.4(b),
e
le onde sonore emesse dal trasmettitore vengono riflesse da eventuali ostacoli e cono-
scendo la velocit` del suono (343 m/s alla temperatura di 20◦ C), ` possibile ricavare la
a e
distanza, misurando il tempo trascorso tra l’emissione e la ricezione dell’onda. Questo
(a) Un sonar per robot mobili
Onda ri essa
Ostacolo
Sonar
Onda emessa
Distanza
(b) Principio di funzionamento di un sonar
Figura 1.4: Sonar
29. Capitolo 1. Robot per l’esplorazione autonoma 15
tipo di tecnica soffre molto dei fenomeni di riflessione (descritti al paragrafo 2.1.3) e ci`
o
dipende soprattutto dall’angolo con cui l’onda colpisce l’oggetto e dal materiale di cui
esso ` composto. In movimento tali fenomeni sono ancor pi` amplificati e causano una
e u
stima abbastanza grossolana della distanza dagli ostacoli. Numerosi aspetti riguardanti
l’esplorazione con il sonar e alcuni modelli probabilistici sono descritti in dettaglio in
[TBF05].
1.3.1.4 Laser scanner
I laser scanner, chiamati talvolta anche laser rangefinder, possono essere pensati come dei
piccoli sonar che utilizzano la luce invece del suono, per creare una mappa bidimensionale
degli ostacoli che si trovano in prossimit` del robot. L’accuratezza, i consumi energetici
a
ridotti e i costi sempre pi` contenuti di questi sensori li rendono preferibili rispetto a
u
tutti gli altri, per costruire mappe o localizzare il robot.
Range
massimo
Risoluzione
angolare
Area visibile
Range
minimo
Area non visibile
(a) Alcuni laser scanner (b) Parametri di un laser scanner
Figura 1.5: Laser scanner
Il principio di funzionamento ` abbastanza intuitivo; ad ogni scansione vengono emes-
e
si iterativamente dei raggi laser distanziati di un certo angolo, che dipende dalla risolu-
zione angolare del dispositivo, fino a ricoprire l’apertura massima dello scanner (Field
Of View). Per ogni emissione, si conosce la distanza e l’angolo rispetto al sensore, da
cui pu` essere ricavata la posizione dell’ostacolo rispetto alla sorgente di emissione.
o
I differenti tipi di laser scanner si differenziano essenzialmente in base alla risoluzio-
ne sulla distanza, risoluzione angolare, la frequenza di scansione e al range minimo e
massimo raggiungibile. Parametri tipici per questi sensori sono riportati in tabella 1.1.
Come per i sensori ad ultrasuoni, una fonte rilevante di errore ` la riflessione incoe-
e
rente dell’energia del laser. Con la luce questo accade quando essa colpisce una superficie
molto riflettente; ci` si verifica ad esempio con oggetti metallici, di legno lucido e, ov-
o
viamente, specchi. Inoltre, a differenza del sonar, i laser scanner non possono rilevare
30. Capitolo 1. Robot per l’esplorazione autonoma 16
Risoluzione angolare 0.3◦ -0.5◦
Field Of View 180◦ -240◦
Risoluzione sulla distanza 20 mm
Frequenza di scansione 10-20 KHz
Range minimo-massimo 20 mm - 70 m
Tabella 1.1: Parametri tipici di un laser scanner
materiali trasparenti come vetro, che talvolta pu` essere presente in quantit` significative
o a
in alcuni ambienti (come ad esempio i musei).
1.3.1.5 GPS
L’utilizzo di GPS per la localizzazione outdoor ` una soluzione abbastanza comune quan-
e
do non sono presenti altri riferimenti e non ` richiesta precisione elevatissima. Il problema
e
principale del sistema GPS ` dovuto al fatto che il ricevitore deve avere comunicazione
e
con almeno quattro satelliti, tre per la posizionamento e uno per correggere gli sfasa-
menti del clock. Considerando che le trasmissioni sono a bassissima potenza, ` richiesta
e
necessariamente una condizione di Line-Of-Sight con i satelliti. Di conseguenza, in spa-
zi ristretti come ambienti urbani circondati da edifici alti o foreste molto fitte, ` poco
e
probabile ricevere il segnale in modo affidabile. Ovviamente, anche la maggior parte
degli spazi indoor ` inadeguata per l’impiego di GPS e per tali motivazioni, esso appare
e
adeguato solo in progetti di robotica mobile in ampie aree aperte o per essere installato
su UAV.
1.3.1.6 Landmark
I landmark sono oggetti con caratteristiche distintive che il robot pu` riconoscere at-
o
traverso il suo sistema sensoriale, ad esempio mediante visione artificiale [BB82]. In
generale un landmark pu` avere una locazione fissa e nota a priori, in base al quale il
o
robot pu` stimare la sua posizione, e viene scelto in maniera tale da essere facilmente
o
distinguibile rispetto ad altri oggetti per forma o colore (ad esempio contrasta con lo
sfondo).
Esso pu` essere naturale, se ` un oggetto o una caratteristica gi` presente nell’am-
o e a
biente che si sta esplorando (come porte, lampade, ecc) o artificiale, se ` un marcatore che
e
deve essere posizionato, con il solo scopo di aiutare la navigazione del robot; per esempio
forme geometriche (linee, poligoni) che possono includere informazioni addizionali (ad
esempio sotto forma di codici a barre). Un vantaggio dei landmark artificiali rispetto a
quelli naturali ` che date le loro caratteristiche, note a priori, si possono progettare e
e
costruire sensori ad hoc per quella determinata applicazione.
31. Capitolo 1. Robot per l’esplorazione autonoma 17
L’accuratezza di queste tecniche dipende soprattutto dalla precisione con cui i land-
mark possono essere riconosciuti (matching) e dall’assunzione che posizione e orientazio-
ne siano noti con una buona approssimazione, ad esempio tramite odometria, in modo
tale da diminuire lo spazio di ricerca.
Un esperimento interessante sul riconoscimento di landmark tramite visione artificiale
` riportato in [HLD07], mentre in [ZKNN07] vengono impiegati dei tag a radiofrequenza
e
(RFID) per stabilire dei punti di coordinamento per squadre di robot, con lo scopo di
suddividere in modo intelligente lo spazio di esplorazione dell’ambiente.
1.3.2 Localizzazione e mappe
La navigazione di un robot mobile nell’ambiente che si sta esplorando richiede la co-
struzione di una mappa; senza di essa il robot non pu` ricavare n´ la sua posizione n´
o e e
quella di eventuali ostacoli. Ad esempio ci` ` vero per i moderni navigatori basati sul
oe
sistema GPS; quest’ultimo fornisce la posizione del ricevitore nel mondo reale, ma senza
l’uso di una mappa questa informazione non pu` essere sfruttata adeguatamente per la
o
guida dell’autoveicolo fino alla destinazione. In problemi di complessit` pi` limitata, in
a u
cui l’ambiente ` gi` noto, il robot pu` essere istruito preventivamente mediante map-
e a o
pe metriche o topologiche. In generale, il problema di localizzazione con la conoscenza
della mappa dell’ambiente o la stima della mappa a partire dalla conoscenza pi` o me-
u
no precisa della posizione, sono stati affrontati e risolti utilizzando differenti approcci
[FBT99, TFBD00, BEFW97].
Ovviamente le capacit` di esplorazione autonoma hanno la possibilit` di liberare il
a a
robot dal vincolo di conoscere preventivamente l’ambiente, rendendo possibili applicazio-
ni anche in aree non note a priori. Inoltre, anche se accurate, le mappe fornite al robot
possono non coincidere esattamente3 con l’ambiente in ogni istante a causa di molteplici
fattori: si pensi alla presenza di oggetti e persone in movimento.
In questo tipo di problemi, occorre considerare che mentre il robot cerca di creare la
mappa, deve anche tenere conto della sua posizione, basandosi sulle percezioni dei suoi
sensori. Ne consegue che, per sviluppare un sistema in grado operare in scenari di esplo-
razione, ` necessario che l’acquisizione del modello dell’ambiente e la stima della posa
e
del robot vengano portate avanti concorrentemente (problema chiamato in letteratura
Simultaneous Localization and Mapping - SLAM [DWB06a, DWB06b]), dato che le due
procedure sono fortemente correlate tra loro. Chiaramente, i sensori giocano un ruolo
fondamentale in tutte le forme di localizzazione; ` proprio a causa dell’imprecisione e
e
dell’incompletezza di questi ultimi che la quasi totalit` degli approcci a questo problema
a
sono di natura probabilistica o statistica [CDNDW01, TFB98, SAY99].
3
Si pensi alle conseguenze che si hanno quando le mappe del proprio navigatore satellitare non sono
correttamente aggiornate!
32. Capitolo 1. Robot per l’esplorazione autonoma 18
Nei paragrafi seguenti verranno brevemente analizzate solo le tecniche principali per
la realizzazione di mappe (mapping), mentre verr` tralasciato il problema della loca-
a
lizzazione del robot rispetto all’ambiente, in quanto problema troppo specifico rispetto
alle argomentazioni di questa tesi (per una trattazione abbastanza completa si consulti
[TBF05]). Va comunque notato che ogni differente approccio per il mapping si presta
a rappresentare pi` o meno correttamente le diverse tipologie di ambienti (strutturati,
u
semistrutturati o destrutturati).
1.3.2.1 Feature maps
In generale, una mappa di un ambiente ` una lista di oggetti con associate, le loro
e
posizioni e propriet` (feature):
a
m = {m1 , m2 , . . . , mN } (1.1)
dove N ` il numero totale di oggetti.
e
Nelle feature maps, un generico elemento mn , contiene le propriet` della feature, con
a
associata la sua posizione geometrica. Spesso si tratta di mappe metriche, caratterizzate
con gli elementi che definiscono l’ambiente come linee, angoli, punti e parametrizzate
in funzione delle dimensioni, colore. In caso di ambienti strutturati (ad esempio un
ufficio), le feature possono essere estratte dalle misurazioni di sonar, laser scanner o da
sistemi di visione artificiale. In caso contrario, l’individuazione e il matching di feature
non ` sempre realizzabile e di conseguenza tali mappe non trovano molte applicazioni in
e
ambienti destrutturati (ad esempio un edificio dopo un crollo).
1.3.2.2 Occupancy grid
Nelle occupancy grid, l’ambiente ` suddiviso in una griglia pi` o meno accurata, dove
e u
ogni cella contiene un valore che rappresenta la probabilit` che essa sia occupata o meno
a
da un oggetto. Queste mappe possono essere rese pi` o meno dettagliate scegliendo la
u
risoluzione di ogni singola cella. Ovviamente, poich´ il numero di celle cresce il modo
e
quadratico con le dimensioni dell’ambiente da descrivere, lo spazio di memoria necessario
per descrivere delle mappe con precisione sufficiente spesso pu` essere molto grande.
o
Risultano particolarmente adatte per sensori sonar o laser, rappresentando uno stru-
mento valido per filtrare e quindi incrementare l’affidabilit` delle misure mediante pro-
a
babilit` condizionate. Tali mappe hanno il vantaggio di descrivere, oltre agli oggetti
a
presenti nell’ambiente, anche lo spazio libero, risultando adeguate alla navigazione di
robot mobili. Un esempio ` riportato in figura 1.6(a). Sempre in riferimento alla nota-
e
zione 1.1, l’elemento generico mn ` riferito ad una particolare posizione sulla mappa; ad
e
esempio nel caso bidimensionale ` pi` chiaro indicare mx,y anzich´ mn per esplicitare il
e u e
fatto che mx,y ` una propriet` di specifiche coordinate (x, y) del mondo reale.
e a
33. Capitolo 1. Robot per l’esplorazione autonoma 19
(a) Esempio di occupancy grid (b) Esempio di mappa topolo-
gica
Figura 1.6: Alcuni tipi di mappe
1.3.2.3 Mappe topologiche
La rappresentazione mediante mappe topologiche definisce una relazione diretta tra l’am-
biente e un grafo. Esse sono definite attraverso la struttura dell’ambiente che rappresen-
tano; ogni luogo ` caratterizzato in termini di unit` funzionali e topologiche (ad esempio
e a
una stanza o un corridoio) tra loro connesse (ad esempio mediante porte o scale). Nel
grafo che viene costruito, i nodi rappresentano i luoghi e gli archi le connessioni per
raggiungerli, risultando in una notazione molto compatta rispetto alle mappe metriche
e pi` gestibile computazionalmente (fig. 1.6(b)).
u
Tuttavia le mappe topologiche hanno anche alcuni svantaggi: in particolare sono
solitamente limitate agli ambienti che possono essere descritti per mezzo di semplici
forme geometriche. Gli ambienti reali solitamente sono complessi e quindi la lista delle
forme degli oggetti ` tipicamente incompleta. Un modo per aggirare questa limitazione `
e e
quella di utilizzare mappe ibride, che rappresentano alcune parti dell’ambiente per mezzo
di oggetti e altre utilizzando delle rappresentazioni sullo stile delle occupancy grid.
1.3.3 Navigazione
Per un robot mobile, i moduli di navigazione combinano tutti quelli visti precedentemen-
te (sensoristica, localizzazione, mapping), al fine di decidere passo passo la coordinazione
dei movimenti e quindi dei comandi da fornire agli attuatori. Oltre a garantire che il
robot segua il path scelto fino al target, la navigazione deve saper affrontare scenari
in cui gli ostacoli sono dinamici, la mappa ` incompleta e alcune azioni possono fallire
e
[SN04].
Le varie architetture di navigazione esistenti, suddividono spesso i task in globali e
locali. I primi sono visti come problemi di pianificazione a lungo termine, in cui viene
considerata l’intera rappresentazione dell’ambiente, rilassando alcuni vincoli (come ad
esempio l’esatta forma del robot); i secondi dipendono fortemente dalle letture in tempo
34. Capitolo 1. Robot per l’esplorazione autonoma 20
reale dei sensori e devono consentire al robot di evitare ostacoli (obstacle avoidance),
modulando opportunamente la sua traiettoria.
Spesso pianificazione e reazione sono visti come approcci opposti. In realt`, quando
a
applicate a sistemi fisici come i robot mobili, essi sono complementari e ognuno ` critico
e
per il successo dell’altro. Il problema di navigazione richiede l’esecuzione di un insieme
di azioni (o un piano) per raggiungere il target. Durante l’esecuzione, il robot deve
tuttavia reagire ad eventi imprevisti in modo tale da poter garantire il raggiungimento
dell’obiettivo globale. Senza reazione, lo sforzo della pianificazione non fornisce i risultati
sperati dato che il robot non raggiunger` fisicamente il goal, bloccandosi prima, mentre
a
senza pianificazione, le funzioni di reazione non riusciranno mai a guidare il robot verso
un obiettivo distante.
1.3.3.1 Pianificazione
Un componente importante per garantire al robot di raggiungere un determinato obiet-
tivo ` il path planning. In questo tipo di problemi, l’agente deve spostarsi da un punto di
e
partenza (start) ad un punto di arrivo (target), senza collidere con ostacoli dell’ambiente
circostante. Esso ` essenzialmente un problema di ricerca, in cui viene scelta una tra le
e
sequenze di configurazioni che portano il robot dallo start al target, possibilmente quella
che minimizza la lunghezza del cammino. Lo spazio di ricerca ` l’insieme di tutte le
e
possibili configurazioni del robot e la dimensione di questo insieme aumenta esponen-
zialmente con il numero di gradi di libert` del robot; la crescita rapida dello spazio di
a
ricerca ` una delle maggiori difficolt` nel path planning.
e a
Una prima distinzione tra path planner pu` essere fatta tra quelli deliberativi e reat-
o
tivi. La pianificazione deliberativa pu` essere usata nelle situazioni in cui si assumono
o
come noti a priori l’ambiente e la posizione del robot, generando, se esiste, una tra-
iettoria che consente di evitare gli ostacoli, eventualmente ottimizzando un opportuno
indice di prestazione. La pianificazione reattiva ` un requisito fondamentale per i robot
e
autonomi che passano ciclicamente dalla fase di pianificazione a quella di movimento
(fig. 1.3). Quelli pi` avanzati, cercano di adattare il percorso ai cambiamenti improvvisi
u
nell’ambiente. In generale, occorre combinare questi due tipi di approcci, utilizzando
un pianificatore deliberativo basato sulla mappa dell’ambiente disponibile e poi, quando
il robot sta inseguendo la traiettoria pianificata, utilizzare un pianificatore reattivo in
grado di evitare il contatto con ostacoli precedentemente ignoti, mediante tecniche di
obstacle avoidance.
I metodi utilizzati per il path planning possono essere classificati in base al tipo
di decomposizione effettuata sull’ambiente, trasformandolo dal dominio nel continuo a
quello discreto. I metodi principali sono quelli a roadmap, a decomposizione di celle e a
campi di potenziale [SN04, Doy95].
35. Capitolo 1. Robot per l’esplorazione autonoma 21
Gli approcci a roadmap cercano di stabilire la connettivit` da un insieme di configu-
a
razioni libere per il robot, per formare una rete di curve o linee unidimensionali chiamate
roadmap. La ricerca del path si riduce al problema di trovare una connessione tra i punti
start e target sulla roadmap, cercando quella ottima.
I metodi basati su decomposizione di celle sono ampiamente utilizzati e prevedono
di suddividere l’insieme delle configurazioni in regioni non sovrapposte, chiamate celle.
La relazione di adiacenza tra queste celle ` rappresentata da un grafo di connettivit`,
e a
in cui i nodi sono le celle libere e gli archi mostrano appunto l’adiacenza tra esse. In
questo grafo viene cercato il path, seguendo le celle libere dal punto di partenza a quello
di arrivo. Il problema principale ` che tutte le celle e il grafo di connettivit` devono
e a
essere costruiti, prima che il path venga trovato, e per alti gradi di libert` del robot, la
a
dimensione dello spazio di ricerca diventa rapidamente intrattabile.
Gli approcci a campi di potenziale utilizzano generalmente l’idea della presenza di un
potenziale repulsivo vicino agli ostacoli e attrattivo vicino all’obbiettivo. Il gradiente dei
potenziali guida il path lontano dagli ostacoli, mentre cerca di avvicinarlo all’obiettivo.
Lo svantaggio maggiore di questi metodi ` che spesso la pianificazione porta a dei minimi
e
locali, causando la presenza di soluzioni non complete.
1.4 Esplorazione autonoma
L’esplorazione in autonomia di un’area sconosciuta ` uno dei problemi fondamentali della
e
robotica mobile. Per la costruzione di un modello dell’ambiente consistente, il robot
deve essere in grado di esplorarlo efficientemente, individuando la posizione di ostacoli,
di oggetti e dello spazio libero, mediante l’utilizzo dei sensori e delle tecniche descritte al
paragrafo 1.3.1. L’esplorazione risulta necessaria in molte applicazioni; per la costruzione
della mappa il robot deve esplorare l’ambiente e la stessa cosa accade in scenari di Search
and Rescue, per trovare persone in situazioni di pericolo. Soprattutto per cercare un
punto di interesse in un ambiente non noto a priori, ` necessario effettuare esplorazione
e
cieca se non si hanno informazioni aggiuntive sulla localizzazione dell’oggetto da trovare,
procedendo praticamente per tentativi.
Una buona strategia di esplorazione dovrebbe essere efficiente, per coprire l’ambiente
velocemente, accurata, per consentire la costruzione di mappe consistenti e adattabile,
in grado da poter essere utilizzata in diversi tipi di ambiente (ad esempio in spazi aper-
ti come in uffici). Durante l’esplorazione quindi, si possono avere diversi obiettivi da
ottimizzare, come ad esempio massimizzare l’area ricoperta in un intervallo di tempo
[Yam98] o incrementare l’autonomia energetica del robot [MLLH06]. A tal fine risul-
tano determinanti le scelte, fatte ad ogni passo, con lo scopo di decidere il prossimo
target da esplorare e verso cui il robot deve spostarsi. Nella maggior parte degli approc-
ci [BMF+ 00, KPN, MLLH06], il target ` selezionato fra i punti di frontiera [Yam97],
e
36. Capitolo 1. Robot per l’esplorazione autonoma 22
che si trovano cio` sulla linea di confine tra lo spazio esplorato e quello non esplorato
e
(per un approfondimento al riguardo, si rimanda al paragrafo 5.1.2). Alcuni approcci, si
basano su wall-following [Mat92, XKC97], risultando validi solo in ambienti di limitata
complessit` strutturale, altri ancora sul riconoscimento di landmark [TK93].
a
La scelta della frontiera spesso viene effettuata tenendo in conto utilit` e costi del-
a
la stessa, in altri casi addirittura avviene casualmente (procedendo per random walk
[Thr95]). L’utilit` pu` essere stimata in base alla dimensione dell’area coperta dalla
a o
frontiera [SB03], mentre il costo pu` considerare gli spostamenti o le rotazioni necessarie
o
al robot per raggiungerla [Yam97, MTK]. Tipicamente vengono utilizzate delle strategie
greedy, selezionando il target in modo che l’area potenziale ricoperta sia massima e con
minor costo. In altri casi si considera la quantit` di informazione ottenibile da differenti
a
viewpoint (problema chiamato next-best-view [GBL01]).
1.5 Simulatori
Alla complessit` di un robot mobile contribuisce sicuramente l’alto numero di sensori
a
presenti e la capacit` di movimento e interazione nell’ambiente. Per uno sviluppatore,
a
la possibilit` di testare i propri algoritmi in un sistema di simulazione, comporta sicu-
a
ramente molti vantaggi in termini di costi e tempi di implementazione. Per non parlare
delle opportunit` che nascono in ambito multi-robot, in quanto ` possibile avere con-
a e
temporaneamente presenti diverse tipologie di robot, considerando che tale scenario non
sempre ` realizzabile nella pratica.
e
Durante la realizzazione della tesi ` stato possibile vederne in dettaglio sostanzial-
e
mente due: l’accoppiata Player/Stage [GVS+ 01] e USARsim [WLG03]. Essi verranno
brevemente descritti nelle sezioni seguenti.
1.5.1 Player/Stage/Gazebo
La piattaforma Player/Stage ` conseguenza di un progetto open-source, iniziato nel 2000
e
ad opera di Brian Gerkey, Richard Vaughan, Andrew Howard e risulta una delle interfac-
ce pi` utilizzate dalle universit` e aziende che si occupano di robotica mobile. Essa pu`
u a o
essere considerata come due componenti indipendenti di un ambiente di simulazione.
Player ha un’architettura che consente di controllare con un paradigma client/server
il robot e i suoi sensori/attuatori, mediante messaggi scambiati tramite TCP/IP. Esso
fornisce un’interfaccia, indipendente dal linguaggio di programmazione, nei confronti di
dispositivi hardware, come laser scanner e sonar, grazie ai numerosi driver sviluppati
dalla comunit`.
a
Stage invece pu` essere considerato come una plugin per Player e permette di si-
o
mulare un ambiente multi-agente con una rappresentazione bidimensionale, utilizzando
ad esempio da una mappa bitmap. Esso comprende un insieme di dispositivi che rende
37. Capitolo 1. Robot per l’esplorazione autonoma 23
disponibili a Player e che possono essere assemblati per costituire un robot personaliz-
zato: questa particolarit` permette di sperimentare in simulazione dispositivi che non
a
sono disponibili sul robot nella realt`. Inoltre i client solitamente non percepiscono la
a
differenza tra i dispositivi reali e quelli equivalenti simulati da Stage e ci` permette di
o
passare semplicemente, e spesso senza modifiche, dal mondo reale a quello simulato e
viceversa.
`
E presente anche un’estensione (Gazebo), che consente di ampliare le possibilit` di
a
Player ad ambienti tridimensionali.
(a) Player/Stage (b) USARsim
Figura 1.7: Simulatori per robot mobili
1.5.2 USARsim
USARsim (Unified System for Automation and Robot Simulation) ` un simulatore ad
e
elevato realismo, orientato agli ambienti tridimensionali e soprattutto a scenari di soc-
corso robotico, in particolare in ambito Urban Search And Rescue (USAR). Esso `
e
basato sull’engine grafico Unreal2 del videogame Unreal Tournament 2004 di Epic Ga-
mes e sull’API GameBots, per fornire un buon rendering grafico e allo stesso tempo una
modellazione fisica realistica.
In USARsim sono presenti numerose riproduzioni di ambienti con disastri, modelli di
robot (sia commerciali che sperimentali) e sensori. Inoltre, ` possibile costruire il proprio
e
ambiente di simulazione, controllando tutto tramite una API basata su socket per testare
gli algoritmi e interfacce utente, senza necessit` di programmazione addizionale.
a
Esso ` inoltre il simulatore di riferimento utilizzato nella competizione RoboCup
e
Rescue Virtual [TKT+ 00], data la sua capacit` di riprodurre realmente scenari con
a
differente grado di destrutturazione, per valutare le prestazioni di squadre di robot nella
cooperazione, ricerca di vittime e mapping dell’ambiente.
38. Capitolo 1. Robot per l’esplorazione autonoma 24
1.6 Il framework SPQR-RDK
La piattaforma SPQR-RDK (Software Per Qualunque Robot-Robot Development Kit)
` stata progettata e successivamente estesa, all’interno del Dipartimento di Informati-
e
ca e Sistemistica “Antonio Ruberti” (DIS), dell’Universit` di Roma “Sapienza”. Essa
a
permette una semplicit` di sviluppo e debugging, con al contempo buone capacit` di
a a
modularizzazione dei nuovi componenti che gradualmente vengono implementati. Essa `
e
composta da un insieme di librerie software, driver di basso livello, moduli per compor-
tamenti ad alto livello, interfacce verso gli agenti robotici ed utility grafiche di ausilio per
l’operatore. Inoltre, come il nome stesso indica, ` possibile impiegarla in diversi sistemi
e
robotici e soprattutto nella robotica mobile. Attualmente l’SPQR-RDK viene impiegato
nella competizioni Robocup Soccer e Rescue, ed ` possibile interfacciarlo a vari tipi di
e
robot (dai Pioneer della ActiveMedia Robotics agli Aibo della Sony).
SPQR-RDK ` sviluppato interamente in C++ ed ` disponibile per piattaforme
e e
Unix (Linux, Mac OS X). Per una descrizione generale si consulti [FGI05]. Nei pa-
ragrafi seguenti viene illustrata la struttura del framework, mettendone in evidenza le
caratteristiche principali.
1.6.1 Agenti e moduli
In SPQR-RDK, l’entit` principale ` l’agente, un processo software che rappresenta il
a e
robot. In esso possono essere caricati dinamicamente moduli, ognuno eseguito nel pro-
prio thread di esecuzione. La possibilit` di avere un ambiente multi-thread, permette di
a
eseguire differenti task concorrentemente e di creare gerarchie produttore-consumatore.
Ad esempio, un generico agente, pu` avere un modulo dedicato al ricevere i dati prove-
o
nienti da odometria e laser scanner, un modulo che con tali informazioni ha il compito
di eseguire lo scan-matching per stimare la posizione dell’agente e infine un modulo che
utilizzando tale stima e le scansioni del laser costruisce la mappa dell’ambiente.
La configurazione di un agente e dei suoi moduli ` abbastanza intuitiva, in quanto `
e e
sufficiente scrivere un file di configurazione XML-based che contiene l’elenco dei moduli
impiegati, settando opportunamente i relativi parametri.
1.6.2 Repository
Lo scambio di dati tra moduli avviene per mezzo di una memoria condivisa, denominata
repository. Nel repository si trovano tutte le propriet` che un modulo condivide con gli
a
altri. Esse sono organizzate in una struttura gerarchica ad albero, individuate tramite
uno specifico URL4 . Le connessioni di dati tra moduli (ad esempio input-output) ven-
gono realizzate collegando le propriet` di un modulo a quella dell’altro, attraverso una
a
4
Ad esempio, la coda contenente i dati provenienti dal laser scanner, ` individuata dall’URL:
e
rdk://agent/laserModule/laserQueue.