controllo di uno sciame di robot utilizzando il framework ... · universita di pisa facolt a di...

113
Universit` a di Pisa FACOLT ` A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell’Automazione Tesi di Laurea Specialistica Controllo di uno Sciame di Robot utilizzando il Framework delle Funzioni Descrittive Candidato: Andrea Ferrari Braga Relatore: Mario Innocenti Correlatore: Lucia Pallottino Anno Accademico 2012–2013

Upload: duongnhan

Post on 23-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Universita di Pisa

FACOLTA DI INGEGNERIA

Corso di Laurea Specialistica in Ingegneria dell’Automazione

Tesi di Laurea Specialistica

Controllo di uno Sciame di Robotutilizzando il Framework delle Funzioni Descrittive

Candidato:

Andrea Ferrari BragaRelatore:

Mario Innocenti

Correlatore:

Lucia Pallottino

Anno Accademico 2012–2013

Page 2: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

�Eccomi adesso qui, povero stolto,e tanto so quanto sapevo prima.

Mi chiamano Maestro: anzi Dottore,e son dieci anni che menando vo

pel naso i miei scolari,di su di giù, per dritto e per traverso

Ma solo per accorgermiche non ci è dato di sapere, al mondo,

nulla di nulla.E quasi mi si strugge, ardendo il cuore.�

Faust, W. Goethe

Page 3: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

INDICE

Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Elenco delle Figure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Elenco delle Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1. Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.1 Controllo Distribuito . . . . . . . . . . . . . . . . . . . . . . . 14

2. Gra� e Algoritmi di Consenso . . . . . . . . . . . . . . . . . . . . . 172.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Protocolli di Consenso . . . . . . . . . . . . . . . . . . . . . . 182.3 Il Consenso Dinamico . . . . . . . . . . . . . . . . . . . . . . . 252.4 Consensus Tracking . . . . . . . . . . . . . . . . . . . . . . . . 27

3. Il Framework delle Funzioni Descrittive . . . . . . . . . . . . . . . . 303.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2 DF Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3 DF Sigmoidea . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.4 Orientazione delle Funzioni Descrittive . . . . . . . . . . . . . 393.5 Sviluppo del Framework: TDF, cTDF e TEF . . . . . . . . . . 43

4. Controllo Centralizzato . . . . . . . . . . . . . . . . . . . . . . . . . 464.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.2 La legge di controllo . . . . . . . . . . . . . . . . . . . . . . . 464.3 Obstacle Avoidance . . . . . . . . . . . . . . . . . . . . . . . . 504.4 Esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.4.1 Uniform Deployment . . . . . . . . . . . . . . . . . . . 564.4.2 Static Coverage . . . . . . . . . . . . . . . . . . . . . . 58

Page 4: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Indice 4

4.4.3 E�ective Coverage . . . . . . . . . . . . . . . . . . . . 604.4.4 Dynamic Coverage . . . . . . . . . . . . . . . . . . . . 624.4.5 Target Assignment . . . . . . . . . . . . . . . . . . . . 644.4.6 Confronto fra DFs . . . . . . . . . . . . . . . . . . . . . 65

5. Controllo Decentralizzato . . . . . . . . . . . . . . . . . . . . . . . 675.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.2 Stima dei Parametri . . . . . . . . . . . . . . . . . . . . . . . 685.3 Esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.3.1 Uniform Deployment . . . . . . . . . . . . . . . . . . . 735.3.2 E�ective Coverage . . . . . . . . . . . . . . . . . . . . 75

6. Connettività . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786.1 L'Agente Virtuale . . . . . . . . . . . . . . . . . . . . . . . . . 79

7. Assegnamento delle Risorse . . . . . . . . . . . . . . . . . . . . . . 837.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837.2 L'algoritmo Ungherese . . . . . . . . . . . . . . . . . . . . . . 837.3 Esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

8. Hardware Testbed . . . . . . . . . . . . . . . . . . . . . . . . . . . 928.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928.2 Mini-Car . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

8.2.1 Cinematica . . . . . . . . . . . . . . . . . . . . . . . . 958.2.2 Controllo del Veicolo . . . . . . . . . . . . . . . . . . . 968.2.3 Agenti Reali e Virtuali . . . . . . . . . . . . . . . . . . 98

8.3 Il Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

9. Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

A. Teoria dei Gra� . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Bibliogra�a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Page 5: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

ELENCO DELLE FIGURE

1.1 Natural vs Robot Swarm . . . . . . . . . . . . . . . . . . . . . 121.2 Global Problem in a Distributed Architecture . . . . . . . . . 15

2.1 Visibility Graph . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Consensus Protocol Convergence with x(0) = [1, 2, 3, 4, 5]T . . 202.3 Weighted Consensus Protocol Convergence in the same graph

of 2.2 with the weigths (1, 4) = 4, (4, 2) = 3, (2, 3) = 2,(4, 5) = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.4 Multivalued Consensus Protocol Convergence in the same gra-ph of 2.2 with the weigths m1 = 1, m2 = 2, m3 = 3, m4 = 4,m5 = 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1 Gaussian Function . . . . . . . . . . . . . . . . . . . . . . . . 313.2 Gaussian DFs . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3 Sigmoids with p = 25 and K variable . . . . . . . . . . . . . . 333.4 Sigmoidal DF with p = 25, K = 2, A = 1, σ = 4 . . . . . . . . 333.5 The product of two sigmoids: the blue one with a1 = 2, the

red one with a2 = −0.5 . . . . . . . . . . . . . . . . . . . . . . 343.6 The Sigmoidal Plane . . . . . . . . . . . . . . . . . . . . . . . 353.7 The Field of View Function . . . . . . . . . . . . . . . . . . . 363.8 The Field of View DFs . . . . . . . . . . . . . . . . . . . . . . 373.9 The Field of View DFs: Only Sigmoids vs Sigmoid/Gaussian . 383.10 DF with rotation parameter . . . . . . . . . . . . . . . . . . . 393.11 DFs rotated by 30◦ . . . . . . . . . . . . . . . . . . . . . . . . 413.12 DF with and without Attitude Parameter . . . . . . . . . . . 42

4.1 Single Integrator Dynamic . . . . . . . . . . . . . . . . . . . . 464.2 Agent behaviour under the e�ect of an attractive and a repul-

sive Potential Field . . . . . . . . . . . . . . . . . . . . . . . . 504.3 Obstacle radius . . . . . . . . . . . . . . . . . . . . . . . . . . 514.4 Stop due to simmetry uott = −uobs . . . . . . . . . . . . . . . 534.5 Obstacle avoidance trajectory with α = 45◦ . . . . . . . . . . . 55

Page 6: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Elenco delle �gure 6

4.6 Uniform Deployment Task realized by a swarm of 8 gaussianDFs: on the left the CA mechanism is printed by a solid line,on the right with the red line . . . . . . . . . . . . . . . . . . 57

4.7 Uniform Deployment Task realized by a swarm of 4 sigmoidsDFs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.8 Static Coverage Task realized by a swarm of 8 DFs: InitialState on the left and Final State on the right. . . . . . . . . . 58

4.9 Static Coverage with(right) and without(left) Collision Avoi-dance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.10 Inspection Task, from top left to bottom right: TDF, CostFunctional, cTDF during execution and agents path. . . . . . 61

4.11 Dynamic Coverage: DFSG VS DFG . . . . . . . . . . . . . . 634.12 Dynamic Coverage: DFSG(blue) VS DFG(red) Cost Functio-

nal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.13 Target Assignment: TDF(blue) VS cTDF(red) . . . . . . . . 644.14 Target Assignment using the DF Framework . . . . . . . . . 654.15 Cost Functional: DFSG(red), DFSS(pink), DFG(green), DFG

with perturbation (others) . . . . . . . . . . . . . . . . . . . . 654.16 Agents Path: DFSG(red), DFSS(pink), DFG(green), pertur-

bated DFG (others) . . . . . . . . . . . . . . . . . . . . . . . 66

5.1 Consensus Tracking Topology . . . . . . . . . . . . . . . . . . 685.2 Tracking examples . . . . . . . . . . . . . . . . . . . . . . . . 725.3 Tracking examples with γ = 1 and γ = 10 . . . . . . . . . . . 725.4 Uniform Deployment: Task Complete . . . . . . . . . . . . . . 745.5 Uniform Deployment: Cost Functional . . . . . . . . . . . . . 755.6 Agent parameters estimation: px (red), py(green) and θ (blue). 765.7 Agent parameters estimation: initial phase zoom(left), and a

general phase of the pq1 estimation tracking process (right). . 765.8 E�ective Coverage: Cost Functional with a zoom on the initial

phase of the estimation process . . . . . . . . . . . . . . . . . 775.9 E�ective Coverage: an estimation of cTDF and TEF realized

by agent n◦2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.1 Connectivity Range . . . . . . . . . . . . . . . . . . . . . . . . 786.2 TEF vs max(0, C(pV , q)eA(p, q) + C(pV , q)) . . . . . . . . . . 806.3 Connectivity Maintenance . . . . . . . . . . . . . . . . . . . . 806.4 Connectivity Maintenance with Obstacles . . . . . . . . . . . . 816.5 Connectivity Maintenance with Leader Election and the Agen-

ts ACs Dynamics . . . . . . . . . . . . . . . . . . . . . . . . . 82

Page 7: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Elenco delle �gure 7

6.6 Connectivity Maintenance with Leader Election (Low Freq.Switching) and the Agents ACs Dynamics . . . . . . . . . . . 82

7.1 Optimal Target Assignment . . . . . . . . . . . . . . . . . . . 907.2 Target Assignment with Resource Allocation (solid line) VS

Simple Target Assignment (dot line) . . . . . . . . . . . . . . 91

8.1 Mini-Car Testbed . . . . . . . . . . . . . . . . . . . . . . . . . 928.2 Mini-Car . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938.3 Mini-Car: Kinematic . . . . . . . . . . . . . . . . . . . . . . . 958.4 MiniCar Control Scheme . . . . . . . . . . . . . . . . . . . . . 968.5 Speed PI Controller . . . . . . . . . . . . . . . . . . . . . . . . 978.6 Dynamic Coverage Trajectories: Virtual Car [solid lines] VS

Simulated Car [dashed lines] . . . . . . . . . . . . . . . . . . . 998.7 Cost Functional . . . . . . . . . . . . . . . . . . . . . . . . . . 998.8 Hardware Testbed . . . . . . . . . . . . . . . . . . . . . . . . . 1008.9 Mini-Cars Trajectories in a Static Coverage Operation: Vir-

tual Agents (solid line) VS Real/Simulated Cars (dashed line) 1018.10 Static Coverage: Cost Functional . . . . . . . . . . . . . . . . 1028.11 Mini-Cars Trajectories in a E�ective Coverage Operation: Vir-

tual Agents (solid line) VS Real/Simulated Cars (dashed line) 1038.12 E�ective Coverage: Cost Functional . . . . . . . . . . . . . . . 103

A.1 Graph Example . . . . . . . . . . . . . . . . . . . . . . . . . . 106A.2 Spanning Tree Graph . . . . . . . . . . . . . . . . . . . . . . . 107A.3 Rooted Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110A.4 Directed Rooted Tree on node C . . . . . . . . . . . . . . . . . 110

Page 8: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

ELENCO DELLE TABELLE

7.1 Task Assignment Table . . . . . . . . . . . . . . . . . . . . . . 847.2 Task Assignment Example . . . . . . . . . . . . . . . . . . . . 867.3 Task matching with munkres algorithm . . . . . . . . . . . . . 887.4 Starling Number of the Second Kind . . . . . . . . . . . . . . 89

Page 9: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

SOMMARIO

Lo studio dei sistemi multi-agente ha da sempre attirato l'interesse dellacomunità scienti�ca per le enormi potenzialità applicative e per la quantità didiscipline coinvolte. L'unirsi in gruppi infatti, anche per molte forme viventi,è da sempre stato uno strumento fondamentale per la soluzione di tantissimiproblemi quotidiani, ed è per questo motivo che anche in robotica si è cercatodi riproporre gli stessi espedienti e stratagemmi usati in natura.

Pur considerando l'ampia letteratura al riguardo, lo studio dei sistemimulti-agente non ha ancora visto nascere una metodologia generale utilizza-bile per ogni possibile situazione e per qualunque tipologia di aggregazione dirobot. In quest'ottica pertanto, nella presente tesi, viene proposto l'utilizzodi un nuovo framework con cui è possibile studiare, sotto un unico formalismomatematico, un gran numero di problemi legati al controllo e alla gestionedegli Heterogeneous Swarm (sciami eterogenei), che vengono così realizzatida squadre miste di veicoli, velivoli, sensori o robot di qualunque tipo. Daquesto punto di vista i termini Sensor-Network, Swarm e Multi-Robot diven-tano sinonimi e risulta così più appropriato parlare di agenti quando occorreriferirsi al singolo elemento.

La soluzione adottata in questa tesi si basa sull'utilizzo delle FunzioniDescrittive che servono a modellare sia le qualità operative degli agenti, siale richieste del task che deve essere portato a termine. Considerando unaparticolare norma della funzione di errore, calcolata a partire dalla di�erenzafra la TDF (funzione descrittiva del task) e la cTDF (funzione descrittivadello swarm), viene generato il moto dello sciame, secondo un algoritmodi tipo discesa del gradiente. Ricordando che un sistema di questo tiporientra nel campo dei sistemi distribuiti, è anche proposta una soluzione ditipo decentralizzato per implementare gli algoritmi di controllo contenuti nelframework. A questo scopo diventa quindi fondamentale lo scambio delleinformazioni all'interno della rete di comunicazione (il Network), e vengonocosì utilizzati algoritmi di Agreement o Consensus.

Page 10: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

ABSTRACT

The Control of a swarm of agents is a general problem that has attractedattention from a lot of researchers and research organizations in the recentpast for the great potentiality and for the several �eld involved (mobilerobotics, operation research, distributed networking, aerospace, etc.). Formany natural living species, join groups is obviously a good practices for thesolution of many di�erent problems. Researchers, for this matter, want toused the same natural expedients also in robotics.

The basic questions have been addressed and solved in very di�erent waysbut a general methodology, which could handle several scenarios and ensem-ble of heterogeneous agents, is not arisen too. This thesis proposes a newframework with which is possible to study, under the same mathematicalapproach, a lot of control and management problems that could be real-ized by team of vehicles, aircraft, sensors or di�erent kind of robots. Fromthis point of view Sensor-Network, Swarm and Multi-Robot are consideredsynonymous, and is too much appropriate talk about agent when the singleelement is mentioned.

The methodology used in this thesis is based on the de�nition of De-scriptor Function, that model the capabilities of the single agent and thetask requirement. The DF is not strictly a density function applicable tocoverage task only, but, more generally, is a representation of the proper-ties that identi�es uni-vocally a single agent in the economy of the problem.The swarm motion is controlled by minimizing a suitable norm of the er-ror between the TDF (task descriptor function) and the cTDF (the sum ofagents descriptor functions), in a gradient descent solution. This systemsare always realized in distributed form and for this reason is proposed also adecentralized solution for the DF Framework: considering the Network Com-munication and the State Estimation problems, Agreement and Consensusalgorithms are used.

Page 11: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

1. INTRODUZIONE

Gli argomenti su cui si sviluppa questa tesi appartengono alla brancadella ricerca che si occupa dello studio dei sistemi multi-robot. Più preci-samente vengono trattati argomenti riguardanti la robotica degli sciami, incui vengono studiati il controllo e la gestione di un sistema composto dauna moltitudine di veicoli e/o velivoli con caratteristiche spesso di�erenti. Iltermine �Swarm of Heterogeneous Vehicles�, spesso utilizzato in questi casi,vuole proprio sottolineare la diversità fra i componenti dello sciame sia unadella caratteristiche fondamentali. Occorre poi aggiungere che nella concezio-ne più generale possibile uno swarm può essere anche composto da elementinon mobili, come dei sensori o delle antenne, e per questo motivo è semprepiù opportuno parlare di agenti piuttosto che di veicoli. In questo modo saràpossibile considerare non solo squadre di veicoli/velivoli/robot identici maanche possibili combinazioni fra agenti con caratteristiche �siche, dinamiche,qualitative ed operative di�erenti.

Lo studio del controllo, del comportamento, e della gestione di un insiemedi agenti ha fortemente attirato negli ultimi anni l'interesse della comunitàscienti�ca. Il motivo è facilmente comprensibile dato che l'unirsi in gruppi,anche per tantissime forme viventi, è da sempre stato uno strumento fon-damentale sia per risolvere problemi quotidiani che per sopravvivere. Perquanto appena detto l'approfondimento di questi argomenti ha interessato esta coinvolgendo settori di diverse branche scienti�che, dalla sociologia allabiologia, dalla matematica all'ingegneria. Per ciò che riguarda le disciplineingegneristiche, e quindi anche gli argomenti di questa tesi, l'obiettivo prin-cipale è quello di modellare e studiare, nei sistemi multi-agente arti�ciali, lediverse problematiche ad essi inerenti. Alcune di queste possono essere adesempio la comunicazione fra elementi di un network, il controllo coordinatodel moto e la risoluzione ottimale di un task.

Da un punto di vista pratico è inoltre possibile intuire come le Sensor-Network, i sistemi Multi-Agente e gli sciami di veicoli possano anche venirimpiegati per risolvere compiti non realizzabili con un singolo elemento. Aparità di risultati e numero di compiti svolti è inoltre sempre preferibileoptare per un sistema composto da più elementi cooperanti di basso costopiuttosto che un unico robot di elevato costo e di di�cile progettazione.

Page 12: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

1. Introduzione 12

Durante questi ultimi anni sono state proposte una moltitudine di solu-zioni speci�che che hanno cercato di far fronte a tutta quella serie di problemiche nascono dall'utilizzo contemporaneo di più robot. Alcuni esempi tipicidi applicazione sono: lo studio del moto coordinato (in cui è stato presospunto dalla Biologia per quanto concerne il movimento di stormi, sciami ebranchi), la comunicazione e l'apprendimento (vedi Sociologia per lo studiodel comportamento delle masse), ma anche l'assegnamento e la suddivisionedei compiti da svolgere (assegnamento e gestione delle risorse).

I primi studi ingegneristici in questo settore sono stati fatti per riproporredal punto di vista matematico comportamenti e situazioni già esistenti in na-tura, emulando così quanto fatto da alcuni gruppi animali. In questo ambitoè importante ricordare quanto scritto in �Swarm Intelligence� di Kennedy eEberhart [28], �Swarm Intelligence: from natural to arti�cial systems� di Bo-nebeau, Dorigo e Theraulaz [29], e �Biomimicry for Optimization, Control,and Automation� di Passino [30]. Un esempio tipico è quello di coordinarei movimenti dei veicoli/velivoli in maniera da realizzare quello che in natu-ra viene fatto dagli stormi di uccelli, dove il movimento del gruppo versouna certa direzione comporta anche tutto un insieme di sotto-movimenti ef-fettuati dai singoli elementi che lo compongono. Alcune soluzioni a questoproblema sono state proposte da Innocenti, Pollini e Niccolini negli articoli[3], [4], [5].

Fig. 1.1: Natural vs Robot Swarm

Con il passare del tempo l'interesse della comunità scienti�ca si è poiesteso anche verso la ricerca della soluzione di problemi di�erenti. Un esem-pio può essere quello riguardante la copertura di una determinata area, ilcoverage, dove è possibile citare il lavoro svolto da Bullo e collaboratori (vedi[8]), ma anche da Hussein e Stipanovic (vedi [9], [20] e [34]) che presentanoun approccio simile a quello che verrà utilizzato in questa tesi. Un ulteriore

Page 13: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

1. Introduzione 13

aspetto di fondamentale importanza è quello legato allo studio della comuni-cazione e del mantenimento della connettività all'interno del network, doveè importante ricordare quanto fatto da Egerstedt e collaboratori (vedi [22] e[35]), e da Beard e Ren (vedi [7], [17], [27] e [33]) che hanno applicato l'analisimatematica riguardante la teoria dei gra� e del consenso sui sistemi di tipomulti-agente.

Considerando tutti questi aspetti è possibile pensare ad un problemaprettamente decisionale, dove l'obiettivo diventa quello di de�nire una leggedi controllo in grado di muovere in maniera ottimizzata gli elementi dellosciame. La domanda a cui rispondere diventa la seguente: �dato un certonumero di compiti da eseguire, è possibile de�nire un'unica legge, valida pertutti gli agenti, che li porti a coordinarsi, muoversi, cooperare, in modo darisolvere tutti i compiti proposti secondo un certo criterio di ottimo? �. Lapresente tesi si sviluppa in quest'ultima direzione e fa riferimento a due lavoriche costituiscono i presupposti e le basi teoriche da cui partire: la relazionescritta dall'Ing. Mario Innocenti �Shape Control of a Swarm of HeterogeneousVehicles: Final Report� [1]; la tesi di dottorato presso la scuola Leonardo DaVinci dell'Università di Pisa �Swarm Abstractions for Distributed Estimationand Control� [2], scritta dall'Ing. Marta Niccolini.

Quello che sostanzialmente emerge da queste due ricerche è un insiemedi strumenti matematici utili per il controllo coordinato degli agenti. La miatesi prende spunto da una delle soluzioni utilizzate e propone l'utilizzo di unnuovo �framework � con cui poter rappresentare tutti gli agenti dello sciameattraverso le medesime funzioni matematiche. L'idea base è quella di partireconsiderando quelle che sono le qualità operative di ciascun agente nell'e-seguire un determinato compito, o task, per poi realizzare una opportunaespressione matematica in grado di descriverle in funzione dell'ambiente cir-costante. Tralasciando l'implementazione pratica di quanto è stato appenadetto, che verrà invece ben illustrata nel proseguo della tesi ( vedi capitolo 3), è quindi possibile considerare per ogni agente una �funzione descrittiva�, oDescriptor Function, che lo rappresenterà dal punto di vista operativo.

Ampliando questo concetto all'intero sciame, sarà quindi possibile de�nireuna funzione descrittiva globale indicativa dello stato complessivo dell'interosistema. Tale funzione indicherà all'interno dello spazio di lavoro la distri-buzione delle risorse utili a realizzare i diversi task. In questa ottica sonoquindi realizzate sia una funzione descrittiva desiderata, o Desired Descrip-tor Function, sia una Current Task Descriptor Function che rappresenterà lostato di esecuzione di quel determinato task.

Sfruttando quanto de�nito nel framework, in [1] e [2] viene anche propostauna legge di tipo algoritmo del gradiente utile a far muovere gli agenti nelladirezione di minimizzazione di un opportuno funzionale di costo. Partendo

Page 14: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

1. Introduzione 14

dalle problematiche che questa legge non riesce a risolvere, e che saranno piùdettagliatamente esposte nel capitolo 4, si svolge il vero lavoro di questa tesiche consiste nello sviluppare e nel migliorare quanto già presente in questoprimo framework delle funzioni descrittive. In questa direzione un passoessenziale verrà compiuto nel progettare un adeguato meccanismo di obstacleavoidance che permetterà agli agenti di muoversi nello spazio evitando ognisorta di collisione.

Ottenuta una nuova legge di controllo e dimostrata la sua e�cacia, oc-correrà implementare il tutto in un sistema distribuito realizzato attraversoil network di comunicazione rappresentativo dello sciame. Partendo dallateoria dei gra� (capitolo 2), con cui è possibile modellare matematicamenteuna qualunque rete di connessioni, verrà proposto un algoritmo di consen-so (capitolo 5), che servirà a realizzare la legge di controllo all'interno delloswarm, in una visione decentralizzata del problema.

Quello che con più precisione viene approfondito in questa seconda partedella tesi è il cosa e il come gli agenti devono comunicare fra loro per averetutti una visione esatta e unanime dello stato globale del problema. In altreparole, verranno prima di tutto de�niti un certo numero di parametri che gliagenti si devono comunicare per conoscere lo stato complessivo dell'esecu-zione di un task, dopo di che, occorrerà anche realizzare un meccanismo disalvaguardia e stima qualora non sia sempre possibile per un singolo agentecomunicare con tutti gli altri.

L'e�cacia delle soluzioni proposte verrà dimostrata attraverso alcune si-mulazioni e con un �hardware testbed�, in cui verranno utilizzati due veicolireali di tipo �mini-car� come agenti dello swarm (capitolo 8).

Prima di proseguire viene qui di seguito riportata una breve e schema-tica panoramica di quella che è la classi�cazione dei problemi di controllonell'ambito dei sistemi multi-agente.

1.1 Controllo Distribuito

Nell'ambito del controllo multi-robot è di�cile stabilire una classi�cazio-ne �nale fra le diverse tipologie di problemi, dato che tutt'ora questo è unodei tanti argomenti discussi fra i ricercatori. Tuttavia è comunque semprepossibile, partendo dal concetto base di neighbours, de�nire una prima suddi-visone fra problema locale e globale. Dato un elemento dello sciame e de�nitocome neighbour un qualunque altro agente con cui è possibile scambiare delleinformazioni (vedi capitolo 2), si può fare la seguente distinzione:

Page 15: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

1. Introduzione 15

• Se il problema di controllo può essere formulato come combinazionedei valori dello stato dei soli agenti appartenenti al neighbourhood ilproblema viene de�nito locale.

• se invece per risolvere il problema di controllo è necessario conoscereil valore dello stato di tutti gli agenti del network il problema vienede�nito globale.

Fig. 1.2: Global Problem in a Distributed Architecture

Partendo da questo presupposto e considerando ora l'architettura del si-stema di controllo, è invece possibile distinguere fra sistemi distribuiti o de-centralizzati, dove vengono scambiate e sono note le sole informazioni locali,e sistemi centralizzati, in cui è sempre disponibile, in ogni istante di tempol'intero vettore di stato del sistema. In questo modo si vengono a creare leseguenti possibili combinazioni:

• Problema di Controllo Globale risolto con una struttura centralizzata:le informazioni scambiate sono globali ed il controllore può accedereall'intero vettore di stato x.

• Problema di Controllo Globale risolto con una struttura ParzialmenteDistribuita: gli agenti sono in grado di accedere alle informazioni globaliche vengono così elaborate a bordo.

• Problema di Controllo Locale risolto con una struttura Distribuita: gliagenti comunicano con i soli neighbours e risolvono un problema notoa solo quel sottogruppo.

Page 16: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

1. Introduzione 16

• Problema di Controllo Globale risolto con una struttura Distribuita:gli agenti comunicano con i soli neighbours per risolvere un problemache invece coinvolge tutto lo swarm.

Il problema che verrà a�rontato in questa tesi è riconducibile all'ultimocaso anche se inizialmente (all'interno del cap 4), per semplicità di trattazio-ne e per rendere le dimostrazioni più comprensibili, le leggi e gli algoritmiproposti saranno applicati ipotizzando una architettura di tipo centralizzata.

Page 17: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. GRAFI E ALGORITMI DI CONSENSO

2.1 Introduzione

Lo studio degli swarm è legato strettamente alla teoria dei gra� che svol-ge un ruolo fondamentale per l'analisi e la formalizzazione delle leggi ma-tematiche che governano questi sistemi. Volendo infatti schematizzare piùagenti all'interno di un generico ambiente e pensando di mappare la rete for-mata dalle loro connessioni, è possibile rappresentare quanto appena dettoattraverso un grafo.

In una rete generica, due agenti possono quindi essere messi in collegamen-to in funzione di diversi aspetti che possono andare da quello comunicativo,legato allo scambio di informazioni, a quello di visibilità. In ogni caso per unsingolo agente si può parlare di �neighbors� riferendosi a tutta quella serie diveicoli e/o agenti che in quel determinato momento sono a lui direttamentecollegati. Un esempio, che ricalca una situazione in cui la connettività è otte-nuta tramite visibilità, è espressa nella �gura 2.1 in cui è facilmente intuibilecome gli archi risultino tracciati da un nodo ad un altro solo in presenza diuna linea di vista.

Fig. 2.1: Visibility Graph

Page 18: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 18

In ogni caso, da ora in avanti, si farà sempre riferimento al grafo rappre-sentativo della comunicazione fra gli agenti, poiché la gestione e lo scambiodelle informazioni saranno di fondamentale importanza per la realizzazio-ne degli algoritmi di controllo. Ogni agente d'altronde non può conosce-re completamente lo stato di esecuzione di un task se non comunicando escambiandosi informazioni con gli agenti vicini.

Nel caso particolare di agenti in moto all'interno dell'ambiente di lavoro,è possibile intuire come la presenza di una arco possa eliminarsi o generarsia seconda delle posizioni relative che il movimento induce nei veicoli. Perquanto appena detto è possibile suddividere i network in statici, quando gliarchi di collegamento fra i nodi rimangono sempre costanti, e in dinamici,quando la topologia del grafo annesso alla rete risulta variabile nel tempo.

Mentre nel proseguo della tesi verranno proposte nel dettaglio le soluzioniai problemi legati ai quesiti �che tipo di informazioni si devono scambiare gliagenti � e �come è possibile gestire lo scambio delle informazioni in presenzadi un network dinamico�, in questo capitolo viene invece fatta una breveoverview sulle tecniche e gli strumenti teorici solitamente utilizzati in questicasi. Per ciò che riguarda le de�nizioni, la nomenclatura e le proprietà deigra� è stata invece realizzata l'appendice A, dove si può trovare un breveelenco da consultare. Si ricorda inoltre che la dinamica dell'agente verràsempre approssimata con quella di un singolo integratore da cui x = u.

2.2 Protocolli di Consenso

In questa sezione vengono a�rontati e presentati tutti quegli argomentiche in letteratura si possono ritrovare sotto il nome di Consensus ProtocolProblem, che fanno parte del campo del calcolo distribuito o distributed com-putation. Per prima cosa occorre chiarire cosa si intende quando si parladi consenso o, in alternativa, di raggiungimento del consenso. In manieramolto intuitiva e del tutto generale è possibile percepire il consenso comeuna particolare situazione in cui tutti i soggetti coinvolti si trovano in accor-do sul valore di una certa quantità di interesse che è stata presa in esame.Riportando il tutto al caso di un generico network di agenti è quindi possi-bile considerare la seguente de�nizione formale: �il consenso viene raggiuntoquando ciascuno degli agenti appartenenti ad uno sciame concorda sul valoredi un opportuno set di variabili condivise�. Tali variabili prenderanno quindiil nome di Variabili di Consenso o, considerandole come un'unica entità, conil nome di Information State, che di qui in avanti verrà indicato con x.

L'utilizzo del Consensus permette la realizzazione e l'esecuzione di di�e-renti operazioni che vanno dalla de�nizione di algoritmi di stima distribuita

Page 19: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 19

all'esecuzione di operazioni coordinate. Alcuni esempi (vedi i riferimenti con-tenuti in [6]) possono essere la ricerca di un punto di Randezvous, il controllodi formazione (Formation Control and Flocking Theory) e della forma (ShapeControl [1] [3] [4] ), la stima di un parametro in una rete di sensori, la sin-cronizzazione di una coppia di oscillatori. Prima di entrare nel merito dellaspiegazione occorre anche ricordare che la maggior parte delle formule chesono proposte qui di seguito trovano riscontro e possono essere maggiormenteapprofondite in [6] e [7].

Partendo dall'analisi di un network statico rappresentato con un genericografo non orientato (undirected graph), indicato con G(V,E) (Vertices andEdge), è possibile realizzare il più comune algoritmo di consenso (AverageConsensus) con l'utilizzo della matrice Laplaciano ( vedi appendice A ) percui si ottiene la seguente equazione dinamica:

x(t) = −L(t)x(t)⇒ xi(t) =n∑

j∈Ni

aij(t)(xj(t)− xi(t)) (2.1)

Dove L(t) è il Laplaciano, x(t) è il vettore su cui deve essere ottenutoil consenso, e aij(t) è l'elemento della matrice di adiacenza che comporta lapresenza o meno di comunicazione fra l'agente i− esimo e j − esimo. Nellosviluppo dell'equazione si de�niscono poi con xi(t) il valore dell'InformationState del generico agente e con Ni l'insieme dei vicini o neighbours con cuiè connesso. Dato che la matrice L(t) è per de�nizione sempre semi-de�nitapositiva, allora esiste anche una convergenza asintotica della soluzione x(t)non appena è presente al massimo un solo autovalore nullo in L(t). Quest'ul-tima condizione è veri�cata non appena il secondo più piccolo autovalore diL(t) ovvero λ2 risulta diverso da zero. La condizione appena espressa è deltutto equivalente a dire che il grafo analizzato debba essere connesso (vediappendice A) e ciò, nel caso di grafo non orientato, si ottiene non appena èpresente un albero di copertura o Spanning Tree.

Teorema 1 (Convergenza del Consenso in un Grafo Non Orientato). Il vet-tore information state x(t) converge al consenso, quale che sia la condizioneiniziale x(0), se e solo se il grafo associato alla rete di agenti contiene unalbero di copertura.

Sotto queste ipotesi l'autovalore λ2 de�nisce inoltre il limite dinamicocon cui avviene la convergenza. Il valore asintotico �nale può essere espresso

Page 20: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 20

attraverso la seguente formula che altro non é che la media dei valori inizialicontenuti nell'information state dei singoli agenti.

xi(∞)→ 1

N

N∑k=1

xk(0) (2.2)

Per cui, considerato l'autovettore 1N legato all'autovalore nullo, è possi-bile riscrivere la formula precedente in questo modo:

xi(∞) = 1N1

N

N∑k=1

xk(0) = 1Nα (2.3)

Un esempio di quanto appena detto è illustrato nella seguente immagineche rappresenta il grafo di �gura A.1 considerato un vettore iniziale x(0) =[1, 2, 3, 4, 5]T . Il riscontro gra�co conferma uno stato �nale pari a x(∞) =15/5 = 3.

Fig. 2.2: Consensus Protocol Convergence with x(0) = [1, 2, 3, 4, 5]T

Analizzando invece il caso di grafo orientato o digraph è possibile ottenerela convergenza dell'algoritmo di consenso se e solo se il grafo risulta fortemen-te connesso. In queste condizioni l'average consensus può essere raggiuntouna volta soddisfatte anche le condizioni di bilanciamento, ovvero quando∑

i 6=j aij =∑

i 6=j aji ∀i ∈ V . Nei gra� orientati la proprietà di connessione

Page 21: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 21

forte implica (e non vale il viceversa) la presenza di un rooted direct spanningtree ovvero di un albero ricoprente con radice o leader.

Se in un network si volessero considerare diversamente le comunicazioniche avvengono tra due agenti piuttosto che tra altri, è possibile introdurredegli opportuni pesi in modo da valorizzare di�erentemente ogni arco del gra-fo non orientato. Il problema appena introdotto prende il nome di WeightedConsensus Problem e viene risolto in maniera del tutto simile al caso prece-dente. La matrice di adiacenza, come del resto quella dei gradi, deve peròessere ride�nita considerando gli opportuni pesi. Mentre in un grafo nonorientato il peso mij deve essere identico a mji, ottenendo così sempre unLaplaciano simmetrico, nel caso orientato il Laplaciano risulterà in generalenon simmetrico. E' possibile riscrivere la matrice di adiacenza secondo laseguente regola.

aij =

{mij, se (j, i) ∈ E0, altrimenti.

Per la matrice D dei gradi si procede calcolando il singolo elemento sullariga/diagonale i − esima come di =

∑Nj=1mij ottenendo in�ne il nuovo La-

placiano calcolato sempre come L = D−A. Il problema di consenso diventadunque il seguente:

xi(t) =N∑i=j

mij(t)(xj(t)− xi(t)) (2.4)

La cui soluzione di convergenza x(∞) è calcolabile come indicato qui diseguito:

x(∞) = 1N

∑Nk=1 mixk(0)∑N

k=1mi

(2.5)

Page 22: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 22

Fig. 2.3: Weighted Consensus Protocol Convergence in the same graph of 2.2 withthe weigths (1, 4) = 4, (4, 2) = 3, (2, 3) = 2, (4, 5) = 1

Come è possibile vedere dalla �gura 2.3, nel caso di grafo non orientato,si raggiunge lo stesso information state �nale ottenuto anche nel caso prece-dente ma con una dinamica che risulta profondamente cambiata. Nel caso digrafo orientato è possibile riproporre ed utilizzare le medesime considerazionifatte nel caso di grafo non pesato.

In uno scenario in cui sono presenti agenti con caratteristiche di�erenti perdimensioni, task da eseguire, capacità comunicative e/o operative, è possibileutilizzare il concetto di peso appena visto per realizzare quello che vienechiamato problema del consenso multi-valore o Multivalued Consensus ( vedi[3] e [4]). Considerando un grafo non orientato i cui archi sono pesati daglielementi aij, e i cui nodi sono pesati dagli elementi mi, è possibile ride�nirela dinamica dell'information state i− esima come segue:

xi(t) =N∑i=j

aij(t)(mjxj(t)−mixi(t)) (2.6)

Il Laplaciano, ottenibile come nel caso delWeighted Consensus, deve esse-re successivamente moltiplicato per la matrice dei pesiM secondo il prodottoelemento per elemento di Hadamard, in modo da ottenere la forma �nale L∗(t)che realizza l'equazione dinamica.

L∗(t) = M ◦ L⇒ x(t) = −L∗(t)x(t)

Page 23: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 23

Fig. 2.4: Multivalued Consensus Protocol Convergence in the same graph of 2.2with the weigths m1 = 1, m2 = 2, m3 = 3, m4 = 4, m5 = 5

Per questa tipologia di Network la convergenza del problema è ottenibilese e solo se il grafo non orientato risulta connesso (dimostrazione in [1]) el'autovettore associato all'autovalore da cui è possibile de�nire il valore diconvergenza è calcolabile come:

v =

N∑k=1

xk(0)

m1

N∑j=1

1mj

1m1

m2m1

m3

. . .m1

mn

(2.7)

Occorre adesso dare alcune precisazioni riguardanti il Laplaciano L(t),che �no ad ora è sempre stato considerato sia appartenente al dominio deltempo continuo t, sia rappresentativo di un network di tipo statico. Entrambequeste condizioni ovviamente non sono sempre veri�cabili nei network reali,ed è necessario quindi ricorrere ad opportune soluzioni di ripiego.

Analizzando il caso di grafo a tempo discreto, che poi rappresenta l'imple-mentazione pratica di molti Network (dato che i protocolli di comunicazionesono solitamente realizzati in digitale), è possibile riscrivere l'equazione diAverage Consensus esprimendola direttamente in funzione del passo k:

x(k + 1) = Px(k)⇒ x(k + 1) =N∑j=1

pijxj(k) (2.8)

Page 24: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 24

Dove P = I − εL è la Matrice di Perron di un grafo G con parametroε. Questa è funzione di I matrice identità, L il Laplaciano ed ε il passo dicampionamento o step-size. Un importante lemma (vedi [6]) che de�nisce leproprietà di convergenza nel caso di gra� a tempo discreto è qui di seguitoriportato:

Lemma 1. Sia G un grafo orientato con n nodi e con grado massimo paria δ = maxi(

∑i 6=j aij). Presa la matrice di Perron P con ε ∈ (0, 1/δ) questa

soddisfa le seguenti proprietà:

• P è una matrice di tipo row stochastic non negativa con un autovaloresemplice unitario.

• Tutti gli autovalori di P sono all'interno del cerchio unitario.

• Se G è un grafo bilanciato allora P è doubly stochastic quindi sia perricghe che per colonne

• Se G è un grafo fortemente connesso e 0 < ε < 1δallora P è una matrice

primitiva ovvero possiede un solo autovalore di modulo massimo.

Il seguente teorema de�nisce quindi le proprietà di convergenza che siderivano dalle considerazioni geometriche espresse dal precedente lemma.

Teorema 2 (Consenso in un Grafo a Tempo Discreto). Considerando unnetwork di agenti xi(k+1) = xi(k)+ui(k) con topologia G è possibile applicareil seguente algoritmo di consenso distribuito:

xi(k + 1) = xi(k) + ε∑j∈Ni

aij(xj(k)− xi(k))

dove 0 < ε < 1δe G è un grafo orientato fortemente connesso. Allora:

• Un consenso viene raggiunto per qualunque stato iniziale xi(0).

• Il valore che si ottiene è dato da α =∑

iwixi(0) con∑

iwi = 1

• Se il grafo orientato è anche bilanciato (o alternativamente P è doublystochastic) è raggiunto l'average consensus paria a α =

∑i xi(0)/n.

Page 25: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 25

In presenza di una topologia dinamica è invece opportuno e�ettuare un'a-nalisi legata al concetto di Dwell Time che rappresenta il lasso di tempo incui la topologia di un grafo rimane costante. Calcolando il dwell time τi comeτi = ti+1− ti è quindi possibile riscrivere la dinamica del consenso in funzionedell'istante in cui è avvenuto l'ultimo cambiamento nella rete.

x(t) = −L∗D(ti)x(t) per t ∈ [ti, ti + τi] (2.9)

La variabile di consenso x(t), in relazione alla sua storia, è esprimibile aquesto punto in funzione dell'evoluzione temporale dei diversi Laplaciani.

x(t) = [e−L∗D(tk)(t−tk)e−L

∗D(tk−1)(τk−1) . . . ]x(0) (2.10)

Dove, nella formula appena scritta, evidenziata dalle parentesi quadre, èpresente una matrice di transizione de�nita da un prodotto in�nito di SIA(Stochastic Indecompensable and Aperiodic Matrices). Per quanto riguardail raggiungimento del consenso, questo viene garantito solo se, durante ilpassaggio da una topologia alla successiva, il grafo mantiene comunque leproprietà necessarie espresse nelle pagine precedenti.

2.3 Il Consenso Dinamico

Quando il consenso deve essere raggiunto su una variabile che si modi-�ca nel tempo, gli algoritmi proposti nella sezione 2.2 perdono di e�cacia.Per ovviare a questo inconveniente è stata studiata da Murray M., SpanosP., Olfati-Saber R. una prima soluzione (vedi [10]) denominata DynamicConsensus 1. Partendo dall'equazione 2.1 è possibile aggiungere un termineesogeno zi(t) che può rappresentare il comportamento di un ingresso esternoo di un disturbo da �ltrare (ma non è questo il caso in analisi). Si ottiene:

xi =n∑j=1

aij(xj − xi) + zi ∀i (2.11)

1 E' importante ricordare di non confondere l'attributo �dinamico�, �no ad ora assegnato

alla topologia del network, con quanto verrà scritto nelle pagine seguenti

Page 26: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 26

Questa espressione può essere studiata in frequenza attraverso una tra-sformazione nel dominio di Laplace. Partendo per semplicità dall'equazionex(t) = −Lx(t) si ottiene:

x(t) = −Lx(t) −→ sX(s)−X(0) = −LX(s) (2.12)

Da cui è possibile scrivere:

X(s) = (sI + L)−1X(0) (2.13)

Considerando poi X(0) come un generico ingresso esterno di tipo gradinoè possibile e�ettuare i seguenti passaggi dove viene ora utilizzato Z(s) =X(0)/s e da cui è possibile derivare l'espressione di una matrice di trasferi-mento I/O:

X(s) = s(sI + L)−1Z(s) −→ Hxz = s(sI − L)−1 (2.14)

La matrice di trasferimento Hxz suggerisce quindi una possibile nuovasoluzione per il raggiungimento del consenso dato un segnale in ingressogenerico z(t). La sua anti-trasformata produce infatti l'espressione:

x = −Lx(t) + z(t) (2.15)

Dove i singoli termini zi sono puramente locali e dove vale la seguenteproprietà di conservazione per cui d

dt

∑i xi = d

dt

∑i zi. Da quanto appena

scritto è possibile concludere che, se il sistema è de�nito con la matrice ditrasferimento 2.14, ogni agente può raggiungere il consenso con errore a re-gime nullo solo se il segnale di ingresso Z(s) possiede al massimo un polo inzero (ad esempio segnale a gradino).

Volendo generalizzare quanto appena scritto per il caso di segnali in in-gresso con più poli nell'origine ( inseguimento alla rampa, parabola, ecc. . . )è poi possibile utilizzare un �ltro predittivo C(s) per cui la matrice di trasfe-rimento del sistema può essere messa nella forma seguente:

Hxz = C(s)(C(s)I − L)−1 (2.16)

Page 27: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 27

Una scelta possibile di C(s) per fare in modo che il sistema raggiunga ilconsenso inseguendo un segnale a rampa può essere la seguente con α > 0:

C(s) =s2

(s+ α)2(2.17)

Questa soluzione comporta però l'inconveniente pratico per cui occorreconoscere il valore sia di z(t) che di z. In una applicazione reale ciò vuol direche, per stimare la posizione di un veicolo che si muove incrementando la suaposizione con una dinamica di tipo rampa, occorre conoscerne sia la velocitàche l'accelerazione.

2.4 Consensus Tracking

Quando si presentano situazioni in cui è necessario che tutti gli elementidi un network inseguano un medesimo valore di riferimento imposto da unodegli agenti (il leader), è possibile sfruttare la teoria del Consensus Tracking,che in questa sezione verrà brevemente riproposta negli aspetti più inerentiallo sviluppo della tesi.

Il nodo che rappresenta il leader/root viene considerato come esterno alnetwork, dato che possiede solo archi uscenti. Preso quindi un generico gra-fo orientato, questo sarà formato da n nodi, che prenderanno il nome difollowers, e da un leader, che rappresenterà l'elemento n+1. Una prima con-seguenza di quanto appena scritto si ripercuote nell'espressione della matricedi adiacenza che verrà considerata in una sua forma particolare dove il leadersvolge la sola funzione di root :

A(G) =

a11 a12 . . . a1n a(1,n+1)

a21 a22 . . . a2n a(2,n+1)

a31 a32 . . . a3n a(3,n+1)

. . . . . . . . . . . . . . .an1 an2 . . . ann a(n,n+1)

0 0 0 0 1

Chiamando con xr(t) il valore imposto dal leader sull'information state

ed ipotizzando di avere per questo primo esempio x(t) = const, è possibilearrivare alla medesima conclusione del capitolo 2.2, in cui tutti i followersraggiungono il riferimento costante imposto dal leader, non appena è presente

Page 28: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 28

nel grafo un albero ricoprente (direct spanning tree) a partire dall'elementoradice. Questa conclusione però perde di valore non appena x(t) diventavariabile nel tempo. Una prima soluzione a questo problema viene fornitadalla seguente equazione dinamica di tracking (vedi [7]):

xi = a(i,n+1)xr − a(i,n+1)αi(xi − xr)−

n∑j=1

aij(xi − xj) (2.18)

Dove αi è una generica costante scalare scelta arbitrariamente, aij è ilvalore dell'elemento della matrice di adiacenza e a(i,n+1) è l'elemento dellamatrice di adiacenza che vale 1, se il leader è direttamente collegato a quelnodo o 0, altrimenti. Utilizzando quest'ultimo algoritmo di tracking si puòconcludere che:

Teorema 3 (Inseguimento del Consenso). Ipotizzando di lavorare su un gra-fo orientato di tipo statico, se tutti gli elementi della matrice di adiacenzaa(i,n+1) legati alla comunicazione con il leader sono pari ad 1, allora il pro-blema di inseguimento del valore di riferimento tempo variabile viene risoltocorrettamente con l'algoritmo 2.18.

Quanto precedentemente scritto comporta quindi che il leader sia col-legato direttamente con un arco a ciascuno degli altri agenti e deve potercomunicare sia il valore xr(t) che la sua derivata temporale xr(t). Que-sto primo algoritmo può anche essere visto come una possibile conseguenzadell'applicazione della teoria del consenso dinamico.

Un secondo algoritmo di tracking può essere ottenuto anche nel caso incui il valore di xr(t) e xr(t) è disponibile solo per un sottogruppo di agenti(vedi [7] e [18]):

xi =1

ηi

n∑j=1

aij[xj + γ(xj − xi)] +1

ηia(i,n+1)[x

r + γ(xr − xi)] (2.19)

Dove aij è il generico elemento della matrice di adiacenza, γ è una costan-te scelta arbitrariamente e ηi(t) =

∑n+1j=1 aij. Nell'implementazione pratica è

opportuno ricordare che il valore di xj(t) può essere calcolato direttamenteper derivazione dal valore di xj(t) comunicato dai neighbours. Vale in que-sto caso il seguente teorema ipotizzando anche qui la presenza di un grafoorientato di tipo statico:

Page 29: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

2. Gra� e Algoritmi di Consenso 29

Teorema 4 (Inseguimento del Consenso). Utilizzando l'algoritmo 2.19 ilproblema di inseguimento del valore di riferimento tempo variabile viene ri-solto correttamente se e solo se il grafo orientato Gn+1 contiene un directed

rooted spanning tree.

Volendo in�ne concludere con un piccolo confronto fra le due strategie, èimportante sottolineare come l'implementazione dell'algoritmo 2.19 richiedacondizioni meno stringenti sulla topologia del network poiché non necessitadi un leader in costante comunicazione con tutti gli elementi, ad ogni istantedi tempo.

Page 30: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. IL FRAMEWORK DELLE FUNZIONI DESCRITTIVE

3.1 Introduzione

In questo capitolo viene presentato un nuovo framework utilizzabile perlo studio e per il controllo di uno sciame eterogeneo. Il singolo agente con-siderato come una risorsa viene descritto attraverso una particolare funzioneche ne identi�ca le proprietà dinamiche e operative. Tale funzione prende ilnome di Descrittore, o Descriptor Function (abbreviazione DF ), e caratteriz-za dal punto di vista qualitativo l'agente mettendo a disposizione, a secondadel caso, proprietà quali ad esempio la dimensione, la potenza di rilevamentoo la bravura nell'eseguire un determinato compito. Partendo da quanto fattonella tesi di dottorato di Niccolini [2], in cui gli agenti erano rappresentati dasole funzioni di tipo Gaussiano, è stata qui sviluppata una nuova concezionedi DF che sfrutta l'utilizzo di funzioni Sigmoidee. Sempre in aggiunta al lavo-ro precedente, tutte le DF sono ora state fornite anche di un ulteriore gradodi libertà che ne esprime l'orientazione all'interno dell'ambiente operativo.

Volendo generalizzare il concetto di Funzione Descrittiva, all'interno delcapitolo é anche indicato com'è possibile rappresentare sotto lo stesso forma-lismo matematico non solo le DF degli agenti (ADF ), ma anche la DF delloswarm (cTDF ) e la DF del task che deve essere eseguito (TDF ).

3.2 DF Gaussiana

Una prima scelta della Funzione Descrittiva (vedi [1] e [2]), può esserefatta utilizzando una curva Gaussiana che può esprimere una generica pro-prietà omnidirezionale dell'agente. Se ad esempio si volesse rappresentare ilcomportamento di un'antenna, la DF che lo descrive potrebbe essere indi-cativa della potenza di TX/RX del segnale; alternativamente, se si volesserappresentare il moto di un veicolo, tale funzione potrebbe fornire in termi-ni probabilistici la sua posizione stimata nello spazio. Questa scelta rimanecomunque arbitraria e funzionale al problema assegnato all'agente. De�nitoun generico ambiente operativo Q nelle sue N dimensioni possibili q1, q2, . . . ,

Page 31: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 31

qN , è possibile ottenere una diversa realizzazione della DF a seconda delladimensione scelta. Per il caso monodimensionale vale la seguente espressione,considerato l'agente generico i− esimo :

DF −→ Di(pi, q) =

{Di(pi, q1) = Ae−0.5

(q1−pi)2

σ2 , se q1 < |pi ± nσ|Di(pi, q1) = 0, altrimenti

Fig. 3.1: Gaussian Function

Dove pi è la posizione di massima intensità della funzione (in �gura 3.1denominata con c), A è il valore massimo che raggiunge la funzione in pi e σindica il grado di dispersione (in �gura 3.1 denominato con b). La funzioneinoltre è de�nita a tratti per rendere realistica la sua applicazione: per limi-tare l'estensione dei rami della gaussiana è stato scelto infatti di e�ettuareun troncamento ad una certa distanza dal centro pi de�nita dal prodottonσ con n parametro arbitrario. Il caso bidimensionale a cui più spesso ver-rà fatto riferimento in questa tesi è invece espresso dalle seguenti equazioni(trascurando il termine di troncamento per semplicità):

Di(pi, q) = Ae−0.5(

(q1−pix )2

σ2x+

(q2−piy )2

σ2y)

(3.1)

Dove q = [q1, q2]T , ed i valori di posizione e di dispersione sono consideratilegati alle coordinate spaziali nel seguente modo: i valori �x� sono riferiti a

Page 32: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 32

q1 mentre i valori �y� a q2. Nell'immagine 3.2 sono illustrate alcune DFgaussiane al variare dei parametri costruttivi σx, σy, A e pi = [pix , piy ]

T .

Fig. 3.2: Gaussian DFs

3.3 DF Sigmoidea

Una forma alternativa alla funzione descrittiva gaussiana si rende necessa-ria qualora occorra rappresentare un agente secondo una certa caratteristicache possiede un particolare �eld of view. Pensando ad esempio al caso diuna videocamera in grado di poter ruotare su sé stessa, o al caso di un eco-scandaglio, è di�cile trovare una qualche relazione �sica e gra�ca che leghii parametri della DF gaussiana alle caratteristiche del sensore. E' stata cosìstudiata ed elaborata in questa tesi una seconda tipologia di �curve a cam-pana� che di�erisce dalla gaussiana per il fatto di possedere una direzionepreferenziale. Queste nuove DF vengono realizzate attraverso la combinazio-ne di funzioni gaussiane con funzioni sigmoidee (Sigmoids) o in alternativadal solo utilizzo di quest'ultime.

La generica funzione Sigmoidea, talvolta chiamata anche �funzione logi-stica�, può essere espressa per il caso monodimensionale nel seguente modo:

f(x) =1

1 + e−K(x−p) (3.2)

Page 33: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 33

Dove i parametri principali che la caratterizzano sono K, che impone lapendenza, e p, che de�nisce invece il centro di simmetria. In �gura 3.3 sonoindicate alcune funzioni sigmoidee al variare del parametro K.

Fig. 3.3: Sigmoids with p = 25 and K variable

.

Queste funzioni possono essere sfruttate per realizzare un'asimmetria nel-la DF Gaussiana, realizzando così un comportamento diverso della DF a se-conda della direzione. A partire dal caso monodimensionale si può scrivere laDF Sigmoidea del generico agente i−esimo come il prodotto di una funzioneSigmoids per una gaussiana:

Di(pi, q1) =Ae−0.5

(q1−pi)2

σ2

1 + e−K(q1−pi)(3.3)

Fig. 3.4: Sigmoidal DF with p = 25, K = 2, A = 1, σ = 4

.

Page 34: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 34

Il vettore di parametri necessario alla realizzazione della funzione puòessere espresso come ξ = [A, pi, σ,K]. Il risultato �nale di questo prodottoè indicato in �gura 3.4, in cui è possibile vedere come la nuova funzionedescrittiva abbia una maggiore estensione delle sue capacità operative inuna direzione piuttosto che nell'altra. Un secondo metodo per ottenere unafunzione con queste proprietà é realizzato andando a moltiplicare due solefunzioni sigmoidee caratterizzate però da un andamento opposto: mentreuna cresce all'aumentare del valore di q1, l'altra deve diminuire. La DF èquindi ottenuta dall'espressione seguente:

Di(pi, q1) =1

1 + e−a1(q1−pi1 )

1

1 + e−a2(q1−pi2 )(3.4)

Con:

• a1 costante che impone la pendenza della prima funzione.

• a2 costante che impone la pendenza della seconda funzione.

• pi1 che rappresenta il centro di asimmetria della prima funzione.

• pi2 che rappresenta il centro di asimmetria della seconda funzione.

Fig. 3.5: The product of two sigmoids: the blue one with a1 = 2, the red one witha2 = −0.5

.

Page 35: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 35

L'esempio illustrato in �gura 3.5 rappresenta il risultato di un prodottofra due funzioni che condividono il medesimo centro di simmetria in p = 25.Ovviamente è possibile anche utilizzare un valore di p diverso per ciascunafunzione, ma in questo modo non si otterrebbe nessun tipo di vantaggio,mentre invece si aumenterebbe il numero di parametri necessario a realizzarela DF.

Come per il caso gaussiano, anche per entrambe le tipologie di DF ditipo Sigmoids é possibile aumentare la dimensione del problema. Per ciò cheriguarda il caso bidimensionale, è importante introdurre �n da subito il con-cetto di �eld of view e indicare come questo possa venir realizzato attraversoil prodotto di due funzioni sigmoidee. De�nito uno spazio operativo nelle suedue coordinate q = [q1, q2]T è possibile individuarne un semipiano di interesse(Sigmoidal Plane) attraverso la seguente espressione:

SPR(φ, p, q) =1

1 + e−K{(q1−pq1)cos(φ)+(q2−pq2)sin(φ)} (3.5)

In questa formula compare l'equazione 3.2 modi�cata per il caso in esame,più un parametro aggiuntivo φ che ne indica la rotazione destrogira intornoal punto p = [pq1, pq2]T . Il risultato che si ottiene è espresso nella �gura 3.6in cui è indicato il piano di interesse descritto secondo i parametri K = 2,φ = 30 e p = [30, 30]T .

Fig. 3.6: The Sigmoidal Plane

Un secondo semipiano può essere ottenuto dall'equazione precedente ef-fettuando una piccola variazione per rendere la sua rotazione intorno al puntop sinistrogira. Si ottiene così:

Page 36: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 36

SPL(φ, p, q) =1

1 + e−K{−(q1−pq1)cos(φ)+(q2−pq2)sin(φ)} (3.6)

L'intersezione di due piani, realizzati così come appena indicato, rendepossibile la creazione di un campo angolare, o campo di vista, compreso fra0÷ 180◦. Il valore della DF risulta quindi in maniera approssimativa diversoda zero solo all'interno di questa zona. La funzione descrittiva del Field ofView diventa:

FoV (φ, p, q) = SPR(φ, p, q)SPL(φ, p, q) (3.7)

Fig. 3.7: The Field of View Function

L'esempio di �gura 3.7 mostra l'intersezione fra due piani caratterizzatida K = 2 e da φ = 30◦; il fov é di 60◦ dato che la formula che lega larotazione dei piani al �eld of view è la seguente:

fov = 2φ, se 0 < φ ≤ π

2

fov = 2(π − φ), se π2< φ ≤ π

fov = 2(φ− π), se π < φ ≤ 3π2, nel semipiano inferiore

fov = 2(2π − φ), se 3π2< φ ≤ 2π, nel semipiano inferiore

(3.8)

A partire dalla gaussiana bidimensionale de�nita nell'equazione 3.1 é orapossibile realizzare una DF con �eld of view. Si consideri infatti la seguenteespressione ottenuta dalla moltiplicazione fra l'equazione della gaussiana e

Page 37: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 37

quella appena trovata, che identi�ca una porzione ben precisa del piano dilavoro:

Di(pi, q) = FoV (φ, p, q) ∗ Ae−0.5(

(q1−pix )2

σ2x+

(q2−piy )2

σ2y)

(3.9)

Fig. 3.8: The Field of View DFs

Alcune possibili realizzazioni di DF Sigmoidee sono quindi indicate nella�gura 3.8. A partire da sinistra si può osservare una DF con fov = 180◦,una con fov = 50◦ e l'ultima con fov = 90◦. In tutti e tre i casi è statoutilizzato K = 2. La modi�ca di quest'ultimo valore incide sulla pendenzadei due semipiani che si intersecano e all'aumentare di K la ripidità risultapiù marcata.

Una seconda possibile realizzazione della DF bidimensionale con campoangolare, può essere ottenuta andando a sostituire nell'equazione 3.9 unafunzione sigmoidea al posto della gaussiana, avente parametro di pendenzaK2 per cui sign(K2) 6= sign(K). L'espressione che si ottiene ha però validitàsolo nel range 0◦ < fov < 180◦ e occorre anche tenere conto che le DFs chesi creano degenerano gra�camente quando φ ≈ 0◦, 90◦, 180◦. Considerandoqueste limitazioni vale la sola parte di de�nizioni dell'equazione 3.8 compresafra 0◦ e 180◦. Si ottiene:

Di(pi, q) = FoV (φ, p, q) ∗ A 1

1 + e−K2(q2−pq2)(3.10)

Nella �gura 3.9 è illustrato un confronto fra questi due modelli bidimen-sionali di DF. Si può vedere come quella originata da una funzione gaussiana

Page 38: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 38

mantenga un campo circolare all'interno del suo �eld of view, mentre l'altraè costituita da una DF con linee di livello orizzontali. In entrambi i casi èstato scelto φ = 50◦ da cui si ottiene fov = 100◦. Per i valori degli altriparametri si ha:

FoV (φ, pq1, pq2, K) = [50, 30, 30, 2]DFGaussian(A, pq1, pq2, σq1, σq2) = [5, 30, 30, 6, 6]DFSigmoid(A, pq2, K2) = [5, 30,−0.2]

Fig. 3.9: The Field of View DFs: Only Sigmoids vs Sigmoid/Gaussian

Per sempli�care la notazione le DF bidimensionali �n'ora proposte ver-ranno chiamate nel seguente modo:

• DFG(p, q) la funzione descrittiva gaussiana ottenuta nel capitolo 3.2 diequazione 3.1.

• DFSG la funzione descrittiva con fov ottenuta dalla moltiplicazione diuna gaussiana con la FoV (φ, p, q).

• DFSS la funzione descrittiva con fov ottenuta dalla moltiplicazione diuna sigmoide con la FoV (φ, p, q).

Page 39: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 39

3.4 Orientazione delle Funzioni Descrittive

Tutte le funzioni descrittive �no ad ora proposte ( vedi equazioni 3.1,3.9 e 3.10) hanno l'inconveniente di non poter essere orientate liberamentenello spazio di lavoro. Se per il caso di DF gaussiana con σx = σy ciò nonapporterebbe nessun vantaggio (è una funzione omnidirezionale) per tutti glialtri casi questa modi�ca risulterebbe fondamentale. In questo modo, infatti,si andrebbe ad aggiungere una caratteristica �sica fondamentale agli agentiche li renderebbe molto più vicini a quello che è il comportamento di unveicolo/velivolo reale. Per questo motivo è stato scelto di aggiungere alleDF un ulteriore grado di libertà che potesse fornire il valore di orientazionerispetto al sistema di riferimento Q = [q1, q2]T . La DF può quindi essereriscritta con l'aggiunta del parametro θ che indica quindi l'angolo di rotazionefra il sistema di riferimento �inerziale� Q = [q1, q2]T ( che descrive i puntidell'environment ) e il sistema di riferimento �body� posto sopra l'agente.Facendo riferimento alla �gura 3.10 si può scrivere la seguente espressionegenerale che indica la relazione di rotazione fra terne:

p{Q}i = [CQ

B ]p{B}i

Fig. 3.10: DF with rotation parameter

Dove p{Q}i è il punto espresso nella terna inerziale, p

{B}i è il punto espresso

nella terna body e C è la matrice di rotazione che indica quanto è ruotato ilriferimento {B} rispetto a {Q}. Nel caso bidimensionale vale che:

Page 40: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 40

CQB =

cos(θ) − sin(θ) 0sin(θ) cos(θ) 0

0 0 1

−→ CQB =

[cos(θ) − sin(θ)sin(θ) cos(θ)

]

Per ruotare la DF occorre quindi e�ettuare il seguente cambio di coordi-nate dove con [qi−pi]′ è indicato il valore aggiornato da sostituire all'internodella DF:

[[q1 − pq1]′

[q2 − pq2]′

]=

[cos(θ) sin(θ)− sin(θ) cos(θ)

] [[q1 − pq1][q2 − pq2]

]

In altre parole nelle formule 3.1, 3.9 e 3.10 indicate precedentemente,occorrerà sostituire il valore:

{(q1 − pq1) −→ +(q1 − pq1)cos(θ) + (q2 − pq2)sin(θ)

(q2 − pq2) −→ −(q1 − pq1)sin(θ) + (q2 − pq2)cos(θ)(3.11)

Per ciascuna funzione descrittiva bidimensionale gaussiana è ora possibileriscrivere la forma �nale così come indicato qui di seguito:

DFG(p, q) = Ae−0.5(

((q1−pix ) cos θ+(q2−piy ) sin θ)2

σ2x+

(−(q1−pix ) sin θ+(q2−piy ) cos θ)2

σ2y)

(3.12)

La solita formula in una notazione più compatta può essere riscritta comesegue:

Di(pi, q) = Ae−0.5[K1(q1−pix )2+K2(q1−pix )(q2−piy )+K3(q2−piy )2] (3.13)K1 = sin θ2

σ2x

+ cos θ2

σ2y

K2 = sin 2θσ2x− cos 2θ

σ2y

K3 = cos θ2

σ2x

+ sin θ2

σ2y

(3.14)

Page 41: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 41

Passando all'analisi del caso delle DF con FoV occorre prima di tuttoride�nire la funzione descrittiva del FoV in funzione del parametro θ, ricor-dando poi che, data la simmetria del problema, il valore della gaussiana nellaDFSG(φ, p, q) non viene messo in funzione di tale parametro:

DFSG(φ, p, q, θ) = FoV (φ, p, q, θ) ∗ Ae−0.5(

(q1−pix )2

σ2x+

(q2−piy )2

σ2y)

(3.15)

DFSS(φ, p, q, θ) =FoV (φ, p, q, θ) ∗ A

1 + e−K2(−(q1−pq1)sin(θ)+(q2−pq2)cos(theta))(3.16)

Fig. 3.11: DFs rotated by 30◦

Page 42: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 42

Nelle immagini di �gura 3.11 è illustrato il comportamento delle DF do-po un rotazione di 30◦. Le funzioni descrittive sono realizzate attraverso iseguenti parametri, dove si ricorda che fov = 2φ:

DFG(A, pq1, pq2, σq1, σq2, θ) = [4, 30, 30, 2, 6, 2, 30◦]DFSG(A, pq1, pq2, σq1, σq2, θ, φ,K) = [5, 30, 30, 6, 6, 30◦, 45◦, 2]DFSS(A, pq1, pq2, θ, φ,K,K2) = [5, 30, 30, 30◦, 45◦, 2,−0.2]

I vantaggi operativi che si ottengono nell'utilizzo delle DFs così modi�-cate sono notevoli rispetto allo stato precedente del framework. Un primoesempio pratico (altri saranno fatti nei prossimi capitoli) può essere fatto os-servando come l'aggiunta dell'orientazione renda più naturale la risoluzionedel problema ra�gurato in 3.12.

Fig. 3.12: DF with and without Attitude Parameter

Un agente, rappresentato da una DFG, si muove verso la zona con mag-gior richiesta di risorse indicata dalla DF trasparente; pur rimanendo identico

Page 43: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 43

il percorso seguito senza la possibilità di ruotare l'agente si muove traslandolateralmente utilizzando una parte della sua DF che non è fortemente attrat-tiva (il movimento risulta più lento). Con l'aggiunta del parametro θ è invecepossibile vedere come l'agente prima si orienti e poi punti direttamente allazona che deve essere raggiunta sfruttando la parte di DF con caratteristi-che migliori. A conclusione di queste sezioni è possibile quindi dire che ilcomportamento di un agente nel risolvere un determinato task può essererappresentato secondo tre di�erenti leggi. Quando l'agente è considerato peruna sua risorsa di tipo omni-direzionale è possibile usare la DF gaussianasemplice, ovvero la DFG; quando invece occorre speci�care un determinato��eld of view� è possibile utilizzare una delle due DF sigmoidee, in relazioneal tipo di linee di livello che meglio approssimano il comportamento dell'a-gente. In tutti questi casi è poi sempre possibile speci�care un valore esattodi orientazione rispetto al riferimento inerziale dato da Q.

3.5 Sviluppo del Framework: TDF, cTDF e TEF

Nel portare a termine una missione un qualunque agente dello sciamepuò trovarsi a dover eseguire più task di�erenti. Se ciascuna DF descrivele qualità o le risorse possedute dall'agente i− esimo per l'esecuzione di unsingolo compito è possibile considerare il seguente vettore che tiene conto dellediverse DF necessarie a portare a termine la missione completa (compostada m task):

di(pi, q) =

d1i (pi, q)d2i (pi, q)...

dki (pi, q)...

dmi (pi, q)

=

f1(px, py, A, θ, σx, σy)f2(px, py, A, θ, σx, σy, φ,K)

...fk(px, py, A, θ, φ,K,K2)

...fm(px, py, A, θ, σx, σy)

La singola dki (pi, q), che da ora in poi verrà chiamata Agent Descrip-

tor Function o ADF (relativamente al task considerato), assumerà formagaussiana o sigmoidea nel caso in cui l'agente sarà in grado di eseguire queldeterminato task, altrimenti assumerà valore nullo. Considerando già unaprima parametrizzazione della funzione è possibile riscrivere il vettore delleADFs come indicato a destra dell'uguale.

Page 44: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 44

L'intero sciame può poi essere suddiviso in squadre, in maniera tale cheogni team risulti composto da tutti gli agenti in grado di portare a termineun determinato task. In questo modo, una missione composta da M taskporterebbe al costituirsi di M team in cui un singolo agente può prendereparte a uno o più di questi sottoinsiemi. De�nito il set di task che l'agentei − esimo sta eseguendo al tempo t con Ti(t), il Team che sta eseguendo ilgenerico task k − esimo può essere formalizzato come segue, dove con Vi èindicato il generico agente:

T k = {Vi : k ∈ Ti(t)} (3.17)

Nel proseguo della tesi (vedi capitolo 7) verrà indicato come sarà possibilesfruttare queste de�nizioni per risolvere i diversi task che compongono unamissione. Ripensando il team come un insieme di DF e non più come ad unsemplice gruppo di agenti, è possibile descrivere lo stato attuale dello swarm,in relazione al completamento di un singolo task, come una sommatoria diDF . Si viene così a de�nire la Current Task Descriptor Function o cTDFesprimibile come segue:

Di(pi, q) =∑V i∈Tk

dki (pi, q) (3.18)

La cTDF è quindi una misura dell'insieme delle risorse possedute dalloswarm per eseguire un task ed in termini sensoriali si può ad esempio parlaredi Sensor Intensity Field.

A completamento di quanto detto �nora è possibile dare una formalizza-zione in termini di DF anche per quanto riguarda l'espressione del task daeseguire. Intuitivamente per ogni task è possibile pensare ad una DF cherappresenti la richiesta di risorse in un determinato punto dell'environmentin analogia a quanto fatto sulle ADFs.

Questa funzione, che da ora in poi verrà chiamata Desired Task DescriptorFunction, o dTDF, de�nisce quindi come e dove devono distribuirsi gli agentiper portare a compimento il task assegnato. De�nendo l'ambiente operativobidimensionale Q = [q1, q2]T , si può esprimere la dTDF con la seguenteespressione che indica come tale funzione debba sempre risultare un numeropositivo:

dk∗(q, t) := Q −→ <+, k = 1, 2, . . . , NT (3.19)

Page 45: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

3. Il Framework delle Funzioni Descrittive 45

Dove NT è il numero totale di task con cui è realizzata la missione. Alcuniesempi possibili di task da eseguire, rappresentati con il framework dellefunzioni descrittive, sono indicati nel capitolo successivo e riprendono buonaparte delle problematiche studiate in letteratura (Uniform Deployment,StaticCoverage, Dynamic Coverage, etc . . . ).

La funzione di errore, o Task Error Function ( TEF ), serve a misurare ladi�erenza fra la dTDF e la cTDF in ciascun punto dell'ambiente operativo.Tale funzione può essere valutata in alcuni modi di�erenti pur mantenendoinalterata la proprietà per cui, laddove è presente una forte richiesta di risorse,questa dovrà avere un valore maggiore rispetto alle zone in cui la richiesta èpiù piccola.

• TEF Assoluta. La TEF viene calcolata come la di�erenza algebricadella dTDF con la cTDF. In questo modo si ottiene una misura dellamancanza di risorse quando il valore calcolato è positivo, mentre siottiene una misura dell'eccesso quando il valore calcolato è negativo.Considerando il generico task k − esimo si ottiene:

ekA(p, q, t) = dk∗(q, t)− dk(q, t)

• TEF Assoluta con max(•). Volendo riconsiderare la funzione laTEF assoluta, non penalizzando la presenza di un eccesso di risorse, èpossibile considerare la seguente variante, per cui si ottiene:

ekA(p, q, t) = max(0, dk∗(q, t)− dk(q, t))

• TEF Relativa. In questa soluzione la TEF viene calcolata come ilrapporto fra la dTDF e la cTDF, risultando così un valore sempre semi-de�nito positivo. In questo modo la TEF non rappresenta più il valoreesatto di richiesta di risorse nell'ambiente, ma costituisce comunqueuna funzione per cui è possibile capire dove, in un determinato istante,c'è una richiesta maggiore o minore:

ekR(p, q, t) =dk∗(q, t)

dk(q, t) + c

Ovviamente la scelta di una TEF piuttosto che un'altra comporterà an-che l'ottenimento di risultati diversi. E' stato scelto però ti a�rontare taliproblematiche più avanti, dove si parlerà direttamente del loro impiego nellalegge di controllo.

Page 46: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. CONTROLLO CENTRALIZZATO

4.1 Introduzione

In questo capitolo viene a�rontato e risolto il problema del controllo del-lo sciame utilizzando il framework delle funzioni descrittive. A di�erenzadi quanto verrà fatto nel capitolo 5, qui di seguito si ipotizzerà che ogniagente sia sempre in piena conoscenza, in ogni istante di tempo, di tutte leinformazioni necessarie per implementare gli algoritmi proposti: con questeipotesi l'architettura di controllo risulterà quindi centralizzata. Il problemaviene quindi risolto attraverso l'ottimizzazione di un opportuno funzionale dicosto per cui, utilizzando un algoritmo di tipo discesa del gradiente, verràrealizzato il moto dell'agente all'interno dell'envirnoment. La dinamica delsingolo veicolo, così come spesso accade in letteratura, viene sempli�cata conl'utilizzo di un singolo integratore per cui l'ingresso è un valore di velocità,mentre l'uscita de�nisce il nuovo valore di posizione.

Fig. 4.1: Single Integrator Dynamic

Alla legge di controllo verrà poi aggiunto un semplice meccanismo in gradodi garantire Obstacle Avoidance sia per quello che riguarda le collisioni conostacoli �ssi sia per i possibili scontri agente/agente.

4.2 La legge di controllo

Tenendo conto di quanto descritto nella sezione 3.5, è ora possibile pensaread una soluzione del problema di controllo facendo muovere gli agenti in modo

Page 47: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 47

da minimizzare una delle espressioni di errore proposte. Questa idea vienerealizzata nel seguente modo in cui il valore della TEF è inserito all'internodi un opportuno funzionale di costo:

JTk =

∫Q

f(eTk(p, q)σ(q)) (4.1)

Dove:

• f(x) è una funzione limitata, continua e semi-de�nita positiva su tuttoQ e ∀x ∈ <.

• σ(q) è una funzione peso che serve per concentrare l'attenzione sualcune aree di Q.

• p(t) è il vettore che indica la posizione del veicolo e la rotazione θdella DF; nel caso bidimensionale con Q = [q1, q2]T si ha per il sin-golo veicolo i pi(t) = [pq1(t), pq2(t), θ(t)]

T o alternativamente pi(t) =[px(t), py(t), θ(t)]

T

La soluzione del problema viene quindi e�ettuata in relazione al vettorep(t) che è il macro-vettore contenente tutti i pi(t) appartenenti ai veicoli. Nelcaso di uno sciame composto da N agenti si ha:

p(t) =

p1(t)p2(t)...

pN(t)

=

p1x(t)p1y(t)θ1(t)...

pNx(t)pNy(t)θN(t)

Utilizzando un approccio di tipo �algoritmo del gradiente�, che viene so-

litamente usato per la ricerca di minimi su funzioni non-lineari, è possibilevalutare la �posizione� ottima p che l'agente deve occupare:

p = arg minp∈Tk

JTk(p) (4.2)

Page 48: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 48

Il funzionale J(· ) ha quindi il compito di mappare la funzione di errorecon un numero reale positivo che indica quanto è lontana la copertura deside-rata. In questo modo l'azzeramento del funzionale è raggiunto solo quandosussiste una perfetta coincidenza fra le due coperture (reale e desiderata).Considerando un controllore che sfrutta l'algoritmo del gradiente è possibilearrivare alla seguente legge ( per il generico agente i ), dove con β si indicail guadagno della legge di controllo:

ui = pi = −β∂J(p)

∂pi= −β

∫Q

∂f(eTk(p, q))

∂piσ(q)dq (4.3)

Una prima proprietà di questa legge è la convergenza verso un puntocritico, facilmente dimostrabile dalla seguente applicazione della chain-rule,la cui dimostrazione può essere provata attraverso la teoria di Lyapunovusando la JTK (p) come funzione candidata.

J(p, q) =∂J(p, q))

∂t=∂J(p, q))

∂p

∂p

∂t=∂J(p, q))

∂pp = −β(

∂J(p, q))

∂p)2 ≤ 0

Per quanto riguarda invece la stabilità della soluzione p, è possibile direche tutti i punti critici sono allo stesso modo raggiungibili: a seconda dellecondizioni iniziali sono quindi raggiungibili minimi locali, globali e anchepunti di sella. Si può facilmente riscontrare che fra questi solo i minimisono equilibri stabili e robusti alle perturbazioni ( basta osservare la leggedi controllo ). Per assicurarsi quindi di aver raggiunto un minimo è sempreopportuno andare a sollecitare l'agente che si è fermato con una qualcheperturbazione esterna. In ogni caso il limite inferiore potrà essere raggiuntosolo per una corretta de�nizione della dTDF, della cTDF e solo quando nonsi entra in dei minimi locali da cui non si può uscire. Per quanto riguardala scelta della f(· ), questa deve essere fatta considerando funzioni almenosemi-de�nite positive. Tenendo conto di quanto scritto in 3.5 in questa tesi èstato scelto di utilizzare la legge di controllo realizzata a partire da un erroredi tipo assoluto con max(· ). Questa scelta è anche motivata da quantodimostrato nella tesi di dottorato [2] per ciò che riguarda la volontà di nonpenalizzare l'eccesso di risorse, e per il fatto che gli e�etti di una legge dicontrollo di questo tipo possono essere visti come il risultato di una forzaattrattiva esercitata sull'agente.

Page 49: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 49

J(p) =

∫Q

max(0, eA(p, q))2σ(q)dq (4.4)

Con questo accorgimento vengono così eliminati un certo numero di mi-nimi locali dovuti all'equilibrio fra forze repulsive e forze attrattive, il tuttoa discapito di un rallentamento nella convergenza dell'algoritmo, causato datutte quelle zone di Q in cui ora il funzionale di costo risulta nullo (vedi [2]).La legge di controllo si modi�ca nel seguente modo:

ui(t) = p = −β∂J(p, q)

∂p= 2β

∫Q

max(0, eA(p, q))∂di(p, q)

∂piσ(q)dq (4.5)

Una legge di controllo che deriva dall'utilizzo dell'errore assoluto puòanche essere disaccoppiata in due contributi. Preso per semplicità il caso conσ(q) = 1, quando la funzione max(· ) > 0 si ottiene:

ui = 2β

∫Q

d∗(q)∂di(p, q)

∂pidq − 2β

∫Q

N∑i=1

di(p, q)∂di(p, q)

∂pidq (4.6)

Per cui è possibile suddividere l'ingresso ui in:

ui = 2β(u(1)i + u

(2)i ) (4.7)

u(1)i =

∫Q

d∗(q)∂di(p, q)

∂pidq

u(2)i = −

∫Q

N∑i=1

di(p, q)∂di(p, q)

∂pidq

Dove i due contributi al moto possono essere interpretati come segue:

• u(1)i è il termine che spinge l'agente a muoversi in direzione del contri-

buto massimo che può dare al task. In altre parole l'agente si muovein modo da massimizzare il prodotto fra la sua DF e la TDF.

Page 50: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 50

• u(2)i è il termine che spinge l'agente ad allontanarsi da posizioni dell'en-

vironment già ricoperte da altri. Il movimento viene fatto in modo daminimizzare il prodotto fra la propria DF e la DF di un qualunque al-tro agente. Tale contributo in ogni caso non garantisce un meccanismoanti-collisione soddisfacente. Nel caso in cui u

(1)i è nella stessa direzione

di u(2)i e vale |u(1)

i | > |u(2)i |, la collisione non potrà mai essere evitata.

4.3 Obstacle Avoidance

Per risolvere il problema di Obstacle Avoidance è stato scelto di utiliz-zare un meccanismo derivato dalla teoria dei Potential Field di cui in let-teratura si possono trovare diversi riferimenti (vedi ad esempio [12] e [13]).Partendo da quanto a�ermato nel capitolo 4.2, dove il moto dell'agente puòessere visto come il risultato dell'e�etto di un campo attrattivo, allo stessomodo si è pensato di creare un campo repulsivo radiale per ogni elementodell'environment.

Fig. 4.2: Agent behaviour under the e�ect of an attractive and a repulsive PotentialField

Si consideri da principio il problema cinematico e si ipotizzi nota la po-sizione di tutti gli ostacoli �ssi e di tutti gli altri agenti (ostacoli mobili).Per prima cosa occorre de�nire un raggio che rappresenti la distanza di si-curezza oltre cui bisogna muoversi per evitare la collisione. In questo modoil meccanismo proposto verrà utilizzato solo ed esclusivamente al superarsidella distanza minima r. Mantenendo un approccio di tipo conservativo ogni

Page 51: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 51

agente vedrà gli altri elementi presenti nello scenario come illustrato in �gura4.3.

Fig. 4.3: Obstacle radius

La realizzazione di un campo di tipo repulsivo radiale passa attraversol'utilizzo dei seguenti parametri:

• d distanza fra agente e ostacolo.

• γ angolo compreso fra l'agente e l'ostacolo.

• r raggio di sicurezza.

Dove r > 0 è deciso �a-priori�, mentre γ e d sono calcolati in funzio-ne della posizione attuale dell'agente pA = [pxA , pyA ]T e dell'ostacolo pO =[pxO , pyO ]T :

• d =√

(pxO − pxA)2 + (pyO − pyA)2

• γ = atan2((pyO−pyA )

(pxO−pxA ))

Occorre ricordare che la parte legata alla orientazione della funzione de-scrittiva θ non in�uisce sul problema, dato che non modi�ca il valore diposizione dell'agente, che è invece l'unico dato di interesse quando si vuolefare obstacle avoidance usando i Potential Fields.

La legge di controllo ui, che da ora in poi verrà indicata con il vettoreuott (ad indicare il risultato del problema di ottimizzazione), viene quindimodi�cata secondo un termine additivo uobs = [uobsx , uobsy ]

T calcolato nelseguente modo:

Page 52: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 52

uobsx =

{0, if d > r

−K(r − d) cos γ, if d ≤ r

uobsy =

{0, if d > r

−K(r − d) sin γ, if d ≤ r

if d ≤ r : |uobs| =√

(−K(r − d) cos γ)2 + (−K(r − d) sin γ)2 = K(r − d)

Dove uobs è diretta come la uott, ma con verso opposto, e K è un guadagnoutile a de�nire l'intensità della forza repulsiva che dovrà avere un ordine digrandezza tale da potersi comparare con la uott . Una possibile scelta di Kpuò essere fatta considerando una distanza minima rmin < r dove si vuoleottenere |uott| = |uobs|:

K =|uott|

(r − rmin)(4.8)

E per i singoli contributi vale:

if d ≤ r

{uobsx = − |uott|

(r−rmin)(r − d) cos γ

uobsy = − |uott|(r−rmin)

(r − d) sin γ(4.9)

La legge di controllo �nale sarà a questo punto de�nita nel seguente mo-do considerando tutti gli ostacoli NO di cui è stata superata la barriera disicurezza r:

uTOT = uott + uobs −→[uTOTxuTOTy

]=

[uottxuotty

]+

NO∑i=1

[uobsxuobsy

]i

(4.10)

Una soluzione di questo tipo comporta però la presenza di casi grigi in cuisi possono presentare o delle situazioni di arresto inaspettate, dovute all'ag-giunta del nuovo termine uobs (minimi locali), o situazioni in cui il problemadi obstacle avoidance viene ignorato.

Page 53: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 53

• Arresto per Simmetria del Problema. E' la situazione che si vienea creare quando si presenta una qualunque combinazione dei vettoriuott 6= 0 e

∑NOi=1 uobsi 6= 0 che dà come risultato �nale uTOT = 0.

• Problema dell'Annullamento del termine uobs. E' la situazioneche si viene a creare quando, in presenza di più ostacoli che interagi-scono con l'agente, si ottiene

∑NOi=1[uobsx , uobsy ]

Ti = 0.

Fig. 4.4: Stop due to simmetry uott = −uobs

La soluzione al secondo problema può essere facilmente trovata conside-rando di volta in volta il solo ostacolo più vicino, ovvero quello con d piùpiccola. In questo modo si elimina il termine di sommatoria e si ottiene:

uTOT = uott + uobs −→[uTOTxuTOTy

]=

[uottxuotty

]+

[uobsxuobsy

](4.11)

Nella suddetta equazione è però ancora presente il problema legato all'ar-resto per simmetria, che può essere evitato andando ad aggiungere un terminein grado di modi�care il risultato nel caso in cui uTOTx = 0 in presenza diuott = −uobs. Quello che si vuole quindi ottenere è che uTOTx si annulli soloal presentarsi della condizione uott = uobs = 0. Una scelta plausibile è laseguente:

uTOT = R(α)uott + uobs (4.12)

uTOT =

[cos (α) − sin (α)sin (α) cos (α)

] [uottxuotty

]+

[uobsxuobsy

](4.13)

Page 54: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 54

Dove l'angolo di rotazione α deve essere preso in modo da risultare diversoda zero all'avvicinarsi della condizione uott = −uobs. Una scelta di tipo�on-o� �, che realizza quanto voluto, può prevedere:

α =

{α, if uott = −uobs0, otherwise

Con quest'ultima modi�ca alla legge di controllo l'arresto dell'agente vie-ne limitato a quelle situazioni in cui uott = 0, che si presentano solo incorrispondenza di un minimo locale o globale ottenuto dal problema di mi-nimizzazione di J(p, q). Occorre poi ricordare che, con l'aggiunta del nuovocontributo uobs, non è più garantito, in ogni istante di tempo, il movimentodell'agente verso le direzioni indicate dall'algoritmo del gradiente. In ognicaso però, una volta risolto il problema incombente di Obstacle Avoidance,l'agente può tornare a muoversi verso la direzione corretta per l'esecuzionedel task.

L'ultimo problema da a�rontare, prima di rendere il meccanismo comple-tamente realizzabile in pratica, è legato alla rappresentazione scenica dell'o-stacolo. Se un agente può infatti essere banalmente considerato dal puntodi vista cinematico come un punto materiale di posizione pA = [pxA , pyA ]T

e raggio di sicurezza r, tale espediente non sempre garantisce una rappre-sentazione corretta per un qualunque ostacolo ambientale. Guadando adesempio la �gura 4.3 si nota come, prendendo pA = [pxO , pyO ]T baricentricied un raggio r, la distanza reale fra l'ostacolo e il cerchio di sicurezza non èsempre costante e ci sono punti in cui a parità di repulsione l'ostacolo puòrisultare più vicino. Una prima soluzione a questo problema può essere e�et-tuata rendendo il problema �fortemente conservativo� ed utilizzando quindiun primo cerchio, de�nito da rmin, che circonda completamente l'ostacolo eun secondo, di raggio r, che de�nisce la distanza da cui occorre iniziare aconsiderare uobs. Una seconda soluzione, che prende invece in considerazionela forma reale dell'ostacolo (ottenuta attraverso un poligono convesso di cuisi conoscono tutti gli N vertici Vi), si sviluppa come indicato qui di seguito.Per prima cosa si calcola il baricentro (xC , yC) come segue:

xCO =xV1 + xV2 + · · ·+ xVN

N

yCO =yV1 + yV2 + · · ·+ yVN

N

Page 55: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 55

Dopodiché si considera l'intero perimetro dell'ostacolo e si controlla quan-do l'agente si avvicina ad una distanza minore di r da uno dei punti che viappartengono ( per e�ettuare un controllo di questo tipo si può ad esempioutilizzare l'algoritmo espresso dalla funzione Matlab �p_poly_dist.m�, rea-lizzata da Michael Yoshpe e revisionata da Eric Schmitz nel 2008). A questopunto si può proseguire come già visto calcolando però l'angolo γ in relazioneall'orientazione con il baricentro (xC , yC), e l'intensità della forza in relazionealla distanza d con il punto del più vicino del perimetro.

• d =√

(pxper − pxA)2 + (pyper − pyA)2

• γ = atan2((yCO−pyA )

(xCO−pxA ))

Quest'ultima soluzione permette l'aggiramento degli ostacoli statici e de-gli altri agenti come illustrato nelle �gure 4.5 dove è evidente il mantenimentodella stessa distanza dai bordi dell'ostacolo �sso.

Fig. 4.5: Obstacle avoidance trajectory with α = 45◦

Dal punto di vista teorico occorre in�ne ricordare che la soluzione adottatadi tipo uTOT = uott + uobs può essere vista come la diretta applicazione delmetodo di Lyapunov, per cui è data una funzione V ≥ 0 da cui si vuole trarreun controllo u che de�nisce V ≤ 0. Nel caso in esame si può scrivere quantosegue (vedi [20] ):

V = J(p, q) = J(p, q)ott + J(p, q)obs

Page 56: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 56

V = J(p, q)ott + J(p, q)obs =∂J(p, q)ott

∂pp+

∂J(p, q)obs∂p

p =

∂J(p, q)ott∂p

uTOT +∂J(p, q)obs

∂puTOT (4.14)

V = uTOT

(∂J(p,q)ott

∂p+ ∂J(p,q)obs

∂p

)(4.15)

Per ottenere V ≤ Q basta operare la seguente scelta su uTOT :

uTOT = −(∂J(p,q)ott

∂p+ ∂J(p,q)obs

∂p

)(4.16)

Che dà come risultato �nale V = −(∂J(p,q)ott

∂p+ ∂J(p,q)obs

∂p

)2

≤ 0. Mentre

il valore di J(p, q)ott è già stato de�nito, il valore di J(p, q)obs può essere

calcolato per integrazione sapendo che uobs = ∂J(p,q)obs∂p

.

4.4 Esempi

In questa sezione sono elencati una prima serie di esempi che voglionoillustrare come, nelle applicazioni pratiche di maggiore interesse, l'utilizzodelle nuove DFs e del meccanismo di Obstacle Avoidance vadano a modi�care,ed in certi casi a migliorare, la risoluzione del problema.

4.4.1 Uniform Deployment

Il problema della distribuzione uniforme viene spesso utilizzato nelle retidi sensori perché è strettamente legato all'ottenere una certa densità di in-formazioni all'interno di una opportuna area. Gli agenti, partendo da unacon�gurazione iniziale molto compatta, si allontanano l'uno dall'altro rea-lizzando una espansione dello sciame (fase di spread out) che massimizzala densità di copertura dell'area. L'obiettivo dell'auto-distribuzione vieneespresso secondo la seguente formula rappresentata dalla dTDF:

Page 57: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 57

d∗(q) =

{d, se q ∈ p0, altrimenti.

(4.17)

Dove P rappresenta l'area di un poligono all'interno di Q in cui deveavvenire la copertura. Un approccio simile a questo per risolvere il problemadi Deployment può essere ritrovato in [17]. L'esempio di �gura 4.6 mette aconfronto una operazione di questo tipo con e senza il meccanismo di collisionavoidance (CA).

Fig. 4.6: Uniform Deployment Task realized by a swarm of 8 gaussian DFs: on theleft the CA mechanism is printed by a solid line, on the right with thered line

Nella �gura di destra è possibile vedere come il funzionale di costo rag-giunge per t −→ ∞ il medesimo valore �nale nullo. Con CA il problemaviene risolto più velocemente e questo si spiega perché, se gli agenti partonoda una con�gurazione iniziale in cui sono molto vicini, nella fase di spreadout alla forza di attrazione della TDF si somma anche il contributo di CA,che aiuta gli agenti ad allontanarsi gli uni dagli altri.

Dato che la soluzione di Uniform Deployment è legata alla distribuzionedegli agenti nello spazio, non ha molto senso utilizzare le DF con fov (leproprietà sensoriali degli agenti sono di poco conto ai �ni del problema). Inogni caso una possibile realizzazione di Uniform Deployment con DFSS èillustrata in �gura 4.7, dove all'interno di un quadrato si distribuiscono leADFs sigmoidee dei quattro agenti che partecipano al task.

Page 58: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 58

Fig. 4.7: Uniform Deployment Task realized by a swarm of 4 sigmoids DFs

4.4.2 Static Coverage

La copertura statica di un'area è un task molto simile a quello di distribu-zione uniforme, se non per il fatto che si utilizza il primo quando l'ambientein cui gli agenti si muovono possiede aree di maggiore interesse rispetto adaltre.

Fig. 4.8: Static Coverage Task realized by a swarm of 8 DFs: Initial State on theleft and Final State on the right.

Il problema, già trattato in [8], con l'utilizzo delle funzioni descrittiveviene migliorato dal punto di vista computazionale, risultando meno dispen-dioso (vedi [2]). La dTDF, trattando aree con importanza di�erente, dovrà

Page 59: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 59

essere scritta in modo da evidenziare questo aspetto e sarà espressa nellaseguente maniera:

d∗(q) = d∗(q) (4.18)

In cui il valore costante d∗(q) può anche essere ottenuto da una qualsiasifunzione continua f(q) purché invariante nel tempo. Occorre ricordare chetale formulazione riprende il concetto principale secondo cui gli agenti devonoportare una quantità maggiore di informazioni laddove é maggiore il valoredella dTDF. Nell'esempio di �gura 4.8 è illustrato come, in presenza di unoswarm di DF miste, il problema viene risolto così come accadeva nella ver-sione precedente del framework. Nel caso di �gura 4.8 sono state utilizzatele seguenti funzioni descrittive:

GaussianTDF −→ d∗(q) = DFG(A, pq1, pq2, σq1, σq2, θ) = [8, 15, 15, 4, 4, 0◦]DFG(A, pq1, pq2, σq1, σq2, θ) = [2, 15, 05, 2, 2, 0◦]DFG(A, pq1, pq2, σq1, σq2, θ) = [2, 25, 15, 2, 2, 0◦]DFG(A, pq1, pq2, σq1, σq2, θ) = [2, 15, 25, 2, 2, 0◦]DFG(A, pq1, pq2, σq1, σq2, θ) = [2, 05, 15, 2, 2, 0◦]DFSG(A, pq1, pq2, σq1, σq2, θ, φ,K) = [5, 05, 05, 4, 4, 0◦, 60◦, 2]DFSG(A, pq1, pq2, σq1, σq2, θ, φ,K) = [5, 25, 05, 4, 4, 0◦, 60◦, 2]DFSG(A, pq1, pq2, σq1, σq2, θ, φ,K) = [5, 25, 25, 4, 4, 0◦, 60◦, 2]DFSG(A, pq1, pq2, σq1, σq2, θ, φ,K) = [5, 05, 25, 4, 4, 0◦, 60◦, 2]

Anche l'e�etto di Obstacle Avoidance si fa sentire nel problema di StaticCoverage. In �gura 4.9 si può osservare come, presa la medesima TDF delcaso precedente, senza CA i due agenti dello swarm andrebbero a colliderenella zona di maggior attrazione.

Fig. 4.9: Static Coverage with(right) and without(left) Collision Avoidance

Page 60: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 60

4.4.3 E�ective Coverage

Questo problema è stato presentato per la prima volta da Hussein e Stipa-novic [9], e può essere interpretato come la ricerca esaustiva dentro una dataarea. La dTDF deve dunque de�nire un livello per cui è possibile riteneresoddisfacente la ricerca, e per far ciò deve tener conto della storia passata,ovvero della copertura che gli agenti hanno già e�ettuato �no a quell'istante.Dato che la singola ADF rappresenta la quantità istantanea di informazioniche l'agente porta nell'ambiente operativo, è possibile pensare alla ricercacomplessiva come all'integrale temporale della cTDF:

de(q, t) =

t∫0

d(p(τ), q)dτ =

t∫0

N∑i=1

di(p(τ), q)dτ (4.19)

Rappresentando con C il livello di ricerca desiderato all'interno di un'areasi può pensare di rappresentare la dinamica della dTDF con la seguentefunzione in cui il valore cala in funzione del moto dello sciame:

d∗(q, t) = max(0, C − de(q, t)) = max(0, C −t∫

0

N∑i=1

di(p(τ), q)dτ) (4.20)

Il task risulta quindi eseguito quando il valore di d∗(q, t) = 0. Con l'uti-lizzo delle ADF con fov è ora possibile simulare e risolvere tutto un insiemedi problemi pratici che prima non potevano essere rappresentati. Si pensiad esempio al caso in cui si voglia ottenere un certo numero di informazio-ni (ispezione) su un oggetto/target (relitto subacqueo, palazzo, etc. . . ) esi abbia a disposizione un certo numero di agenti muniti di sensori con undeterminato fov (fotocamere,sonar,etc. . . ). Si consideri inoltre il fatto cheper ottenere una informazione di una certa qualità devono essere scattateimmagini da una distanza ravvicinata in tutti i punti del target. Il problemapuò ora essere formulato nel seguente modo:

• Il target rappresenta sia un ostacolo, a cui non é possibile avvicinarsi,sia il poligono che delimita l'area in cui è de�nita la TDF.

• La TDF è de�nita solo vicino al perimetro del target. I punti al suo in-terno non son di interesse (informazioni solo perimetrali) e non possonoessere neppure raggiunti.

Page 61: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 61

• Solo quando la di�erenza fra la DF di un agente e la TDF è minore diun certo valore (nell'esempio pari a 1) si utilizza l'equazione dinamica4.20. Questo serve per far diminuire le richieste di risorse da una zonasolo se l'agente si è avvicinato con una parte della sua DF che possiedeuna elevata capacità (richiesta di informazioni di elevata qualità).

In �gura 4.10 sono indicati i risultati ottenuti dall'esecuzione di un taskdi questo tipo. Gli agenti si muovono circondando il target sempre rivoltiverso il perimetro (è la parte su cui è de�nita la TEF). Alla �ne della simula-zione ogni elemento dell'oggetto da ispezionare è stato analizzato con la curanecessaria de�nita dal problema, così come è possibile vedere dall'andamentodel funzionale di costo.

Fig. 4.10: Inspection Task, from top left to bottom right: TDF, Cost Functional,cTDF during execution and agents path.

Nell'esempio di �gura sono state utilizzate tutte funzioni descrittive iden-tiche di tipo DFSG con la seguente parametrizzazione:

DFSGi(A, pq1, pq2, σq1, σq2, θ, fov,K) = [3, pq1i , pq2i , 4, 4, θi, 90◦, 2]

Page 62: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 62

4.4.4 Dynamic Coverage

L'obiettivo della copertura dinamica consiste nel muovere frequentementegli agenti all'interno dello spazio operativo in modo da mantenere elevatoin tutti i punti il valore di copertura. Per ottenere questo risultato occorrequindi tenere memoria del passaggio di un agente almeno per un certo periododi tempo: se di fatto un agente passa sopra un'area e successivamente siallontana, la dTDF in quella zona dovrà richiedere nuovamente il passaggiodell'agente solo dopo un certo periodo di tempo. Un metodo per realizzarequesta TDF passa attraverso il concetto di �Information Decay Process�,descritto dalla seguente equazione dinamica:

I(q, t) = δI(q, t) +D(p, q) (4.21)

Con δ ≤ 0 ad indicare il decadimento del processo rappresentato da I(q, t).In questo contesto D(p, q) rappresenta il guadagno di informazione de�nitodalla cTDF. La TDF può essere complessivamente rappresentata nel seguentemodo:

d∗(q, t) = C − I(q, t) (4.22)

C indica il livello minimo di copertura e�ettiva che si vuole raggiunge-re per ciascun punto. In termini del tutto generali la dinamica può esseredescritta come segue:

d∗(q, t) = C +H(q, t)−D(p, q, t) (4.23)

Il termine H(q, t) rappresenta un processo dinamico che tende ad aumen-tare nel tempo, mentre D(p, q, t) è la cTDF che cerca di contrastare questoincremento. In quest'ultima concezione del problema, come del resto anchenella precedente, il task si considera risolto quando il valore di d∗(q, t) ≤ C.In �gura 4.11 è illustrata una possibile applicazione di questo tipo per untask di sorveglianza. In questo esempio viene messo a confronto il compor-tamento di uno swarm realizzato con le nuove DFSG e uno con le DFG. Purnon avendo la stessa forma, per realizzare il confronto sono state scelte DF ilcui integrale nello spazio fosse quantomeno approssimabile (stessa quantitàdi risorse ma distribuita diversamente). Quanto appena scritto è confermatodal valore iniziale del funzionale di costo, rappresentato in �gura 4.12.

Page 63: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 63

Fig. 4.11: Dynamic Coverage: DFSG VS DFG

Come si può vedere le DF con fov reagiscono meglio ad un task di questotipo (vedi andamento del funzionale di costo in �gura 4.12) perché sfruttanoil fatto di possedere una direzione di preferenza. Gli agenti con DF omnidire-zionale, per spostarsi, devono infatti aspettare che ci sia un'asimmetria nellaforze di attrazione che ogni punto dell'environment esercita su di loro (cosache invece è già presente per costruzione nelle DF con campo angolare).

Fig. 4.12: Dynamic Coverage: DFSG(blue) VS DFG(red) Cost Functional

Page 64: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 64

Queste ultime a�ermazioni sulla prontezza di una DF con fov, rispettoa quelle proposte in [1] e [2], hanno valenza del tutto generale e può essereprovato anche in altre tipologie di task come ad esempio E�ective Coverage.Nella sezione 4.4.6 verrà fatto qualche esempio speci�co.

4.4.5 Target Assignment

Considerando uno scenario in cui sono presenti Nw target statici e Nagenti, si vuole risolvere il problema di andare a spostare ogni veicolo nellaposizione contrassegnata da un determinato target. Ovviamente quandoN ≥Nw il problema è completamente risolubile, altrimenti, nel caso in cuiN < Nw

occorrerà ridimensionare il problema considerando soloN target. Utilizzandoil framework delle funzioni descrittive è stato scelto di utilizzare anche per iltask la stessa espressione matematica utilizzata per modellare gli agenti:

d∗(q, t) =Nw∑j=1

dj(pt, q) (4.24)

In questo task l'utilizzo delle DF con fov non porta modi�che sostanzialial problema, se non per il fatto che può solo peggiorare le cose, dato che gliagenti non sentono l'attrazione dei target posizionati alle loro spalle. In ognicaso è qui di seguito illustrato un esempio di target assignment e�ettuato conle DF gaussiane ma con l'aggiunta di ostacoli nell'environment. In questocaso speci�co il task è portato completamente a termine.

Fig. 4.13: Target Assignment: TDF(blue) VS cTDF(red)

Page 65: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 65

Fig. 4.14: Target Assignment using the DF Framework

4.4.6 Confronto fra DFs

Così come già accennato nell'esempio 4.4.4, in questa sezione vengonomessi a confronto i comportamenti di tre DF diverse nella risoluzione delmedesimo task. Per il caso in esame è stato scelto di utilizzare un task diE�ective Coverage per cui in tutto l'environment è presente una costanterichiesta di risorse che deve essere soddisfatta (d∗(q, t = 0) = 5 ). Sono statequindi scelte le seguenti DF:

DFG(A, pq1, pq2, σq1, σq2, θ) = [3, 10, 10, 3, 3, 0◦]DFSG(A, pq1, pq2, σq1, σq2, θ, φ,K) = [5, 10, 10, 5, 5, 0◦, 60◦, 2]DFSS(A, pq1, pq2, K,K2, θ, φ) = [5, 10, 10, 2,−0.2, 0◦, 60◦]

Fig. 4.15: Cost Functional: DFSG(red), DFSS(pink), DFG(green), DFG withperturbation (others)

Page 66: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

4. Controllo Centralizzato 66

La quantità di risorse messe a disposizione da ciascuna delle DF scelte èsimile, anche se la funzione di tipo DFG è leggermente più grande. In en-trambi i casi in cui è presente un FoV il task viene portato a termine consuccesso, come è possibile vedere dal gra�co del funzionale di costo (linearossa e rosa). Per quanto riguarda il caso DFG, se l'agente è posizionato alcentro dell'environment, quindi in una posizione di simmetria, questo non simuove (asterisco verde al centro in �gura 4.16). Solo perturbando l'ingressou è possibile farlo uscire da questa situazione di stallo dovuta ad un minimolocale. In ogni caso, però, se la perturbazione è realizzata in modo �simme-trico� (ovvero se uq1 = uq2 o quando uqi 6= 0 ∧ uqj = 0), allora l'agente simuove in linea retta, dato che sentirà due forza attrattive identiche che siannullano nella direzione ortogonale al moto (vedi gli andamenti di coloreblu e celeste nei gra�ci di �gura 4.16 e 4.15 ). Anche in questo caso il tasknon viene completato con successo.

Fig. 4.16: Agents Path: DFSG(red), DFSS(pink), DFG(green), perturbated DFG(others)

Per far si che anche l'agente con DFG possa portare a compimento il task,è opportuno andare a perturbare entrambi gli ingressi in modo di�erente. Inquesto caso l'agente riesce ad uscire dalla situazione di simmetria e, sfrut-tando la maggior capacità, porta il task a zero in un tempo minore rispettoa DFSG e DFSS (vedi andamento di colore nero). Se per un semplice task,come quello proposto ora, la simmetria si presenta solo all'avvio, in un taskpiù complesso queste situazioni si possono presentare più volte. Oltre a que-sto difetto, la capacità di sentire richieste che provengono da ogni direzione,che in certi casi può essere un vantaggio, talvolta comporta un rallentamentodell'agente, così come già dimostrato nella sezione 4.4.4.

Page 67: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. CONTROLLO DECENTRALIZZATO

5.1 Introduzione

Per utilizzare le leggi di controllo proposte nel precedente capitolo in unoscenario reale, è necessario implementare un meccanismo di comunicazionefra gli agenti che renda possibile stimare lo stato dello swarm. Un agenteinfatti, per potersi muovere all'interno dell'ambiente operativo in manieracorretta, deve essere in grado di conoscere in ogni istante di tempo sia ilvalore della TDF (nel caso statico possono anche essere note a priori) siale DF degli altri agenti. Ovviamente tali informazioni non sono sempre di-sponibili in maniera diretta e, a seconda della topologia con cui è possibilerappresentare il network, l'agente deve poterle ricavare comunicando con i soli�neighbors�(problema di ottimizzazione globale con architettura del controllodistribuita). Per quanto appena asserito servirà quindi stimare la cTDF ela TDF per ricavare la uott, e le posizioni di tutti gli ostacoli statici (e non)per calcolare la uobs. In maniera schematica è possibile elencare i parametrinecessari per ottenere questo risultato:

• pV1 , pV1 , . . . , pC1 , pC2 , . . . . Posizione dei vertici e del baricentro che ser-vono a realizzare il meccanismo anti-collisione presentato nel capitolo4.3. Queste variabili possono anche essere note a priori da ciascun agen-te e si possono limitare alle posizioni dei baricentri qualora si volesseutilizzare la soluzione de�nita �fortemente conservativa�.

• ξ = [px, py, A, θ, σx, σy, DFtype, task,K,K2, fov]T . Sono il numeromassimo di parametri necessari a de�nire la DF di ogni agente. No-ti questi è possibile ricavare il valore della cTDF. Mentre la variabiledf_type indica se la DF è di tipo gaussiana o sigmoidea, task indicaqual è il task che sta eseguendo in quel momento l'agente. Tutto questoset di variabili deve essere calcolato e stimato in tempo reale, dato chela posizione di ogni agente è necessaria pure a realizzare il meccanismoanti-collisione presentato nel precedente capitolo.

• N . Il numero degli agenti che partecipano al task o più in generalealla missione. E' una informazione necessaria per sapere il numero di

Page 68: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 68

parametri che deve essere stimato, e generalmente N viene assegnatoall'inizio della missione; tuttavia per quelle situazioni in cui si vuo-le modi�care la dimensione dello swarm durante l'esecuzione di unamissione, può essere possibile realizzare una stima real-time così comeproposto in [15].

Nella prossima sezione verrà proposto un algoritmo di �consensus trac-king� che sarà utilizzato per la stima dell'information state, de�nito come:

x(t) =

ξ1

ξ2...ξN

Dove il generico elemento ξi è de�nito dai parametri che de�niscono la

DF di ogni agente:

ξi = [pxi(t), pyi(t), Ai, θi, σxi , σyi , DFtypei, taski, Ki, K2i, fovi]T

5.2 Stima dei Parametri

Una soluzione al problema di stima può essere fornita attraverso l'utilizzodell'equazione 2.19, che de�nisce l'algoritmo di consenso/tracking dinamicoutile nel caso in cui l'information state sia disponibile ad un solo sottogruppodi agenti.

Fig. 5.1: Consensus Tracking Topology

Page 69: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 69

L'algoritmo di consenso utilizzato nella presente tesi è stato per la primavolta proposto da Wei Ren ( vedi [7], [18] e [27] )con lo scopo di de�nire unmetodo che funzionasse sia per il caso di �cambiamento dinamico del leader�,sia in presenza di una qualunque �topologia dinamica orientata� ( quandonon orientata viene studiata come un caso particolare). Anche se il problemaviene risolto e dimostrato considerando un solo leader (che dà il riferimento) etutti gli altri followers (che eseguono il tracking), tale situazione è facilmenteriportabile al caso in esame.

La stima dell'intero vettore x(t) può infatti essere realizzata andandoa suddividere il tracking per ciascun elemento ξi risolvendo così i problemidiversi di Consensus Tracking. Ogni agente sarà così leader del �sub-network�relativo alla comunicazione dei propri parametri, ma sarà a sua volta followerin tutti gli altri (la situazione illustrata in �gura 5.1 si ripete quindi per ogniagente o se si vuole per ogni ξi ). Se ad esempio è presente uno sciame di treagenti, il primo di questi dovrà comunicare per intero [ξ1, ξ2, ξ3], ma dovràoccuparsi di stimare i soli valori ξ2 e ξ3, dato che ξ1 è il suo vettore di stato.

Studiando quindi il problema per il singolo ξi le conclusioni tratte do-vranno poi essere riportate a tutti gli altri sub-network per poter considerareil problema completamente risolto. La prima conseguenza di questa suddivi-sione vede l'applicazione del teorema 4 che porta alla conclusione per cui ilconsenso su ξ è raggiunto con l'algoritmo 2.19 se e solo se all'interno del gra-fo di comunicazione è presente un albero di copertura orientato con radice.Considerando quindi il singolo vettore ξi si può scrivere:

ξi =1

ηi

N∑j=1

aij[ξj + γ(ξj − ξi)] +1

ηia(i,n+1)[ξ

r + γ(ξr − ξi)] (5.1)

Dove la formula può essere sempli�cata considerando il leader r facenteparte del neighbourhood Nj:

ξi =1

ηi

N∑j=1

aij[ξj + γ(ξj − ξi)]

Presi i valori della matrice di adiacenza come in appendice A, la formulaprecedente può quindi essere riscritta nella forma sempli�cata utilizzata inquesta tesi:

Page 70: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 70

ξi =1

Ni

∑Ni

[ξj + γ(ξj − ξi)] (5.2)

Dove Ni è la dimensione del neighbourhood mentre ξj è la derivata tem-porale della variabile che vuole essere stimata. La comunicazione di que-st'ultimo parametro può essere anche evitata, dato che è possibile stimarneil valore a partire da quello di ξj con una equazione alle di�erenze di tipo�Eulero�:

ξi ≈ξi(K + 1)− ξi(K)

∆T

Il teorema 4 che de�nisce le condizioni di convergenza dell'algoritmo ge-nerale 5.1, e quindi anche della formula 5.2 utilizzata in questa tesi, viene quidi seguito riportato per intero, in modo da considerare anche le condizionilegate alla validità in presenza di �cambiamento dinamico del leader� e di�topologia dinamica orientata� (vedi anche [18]).

Teorema 5 (Consensus Tracking). Dato il sistema dinamico ξi = ui coningresso ui de�nito dall'equazione 5.1, sia δi =

∑Nj=1 aij(ξj−ξj) e t0 l'istante

di inizio osservazione. Si ipotizzi la matrice di adiacenza An+1(t) continua atratti e scelta in un set compatto di costanti positive [a, a]. Si ipotizzi inoltreche nel grafo rappresentativo di An+1(t) sia contenuto un albero di coper-tura durante tutti gli istanti di cambiamento della topologia de�niti cometj, tj + 1, . . . . Il sistema in ciclo chiuso de�nito dallo stato ξi − ξr e dall'in-gresso δi è stabile ISS (Input to State Stability). Quando δi(t) → 0 alloraξi → ξr

Dimostrazione. Si consideri per prima cosa che 1ηij

è un valore sempre de�nito

dato che è stato supposto per An+1(t) un albero di copertura per ogni istantet. L'equazione 5.1 può essere riscritta come segue:

[W (t)⊗ Im]u+ [b(t)⊗ Im]ξr = −γ([W (t)⊗ Im]ξ + [b(t)⊗ Im]ξr) + δ

Dove:

• u = [uT1 , . . . , uTn , ξ

rT ]T .

Page 71: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 71

• Ln×(n+1) è il Laplaciano considerato un grafo �rettangolare� dovutoall'aggiunta del leader vhe è l'elemento n + 1−esimo (vedi capitolo2).

• L(n+1)×(n+1) =

[Ln×(n+1)

01×(n+1)

]il Laplaciano complessivo di rango n per la

presenza dell'albero di copertura (vedi capitolo 2 e appendice A).

• Ln×(n+1) = [W (t)|b(t)], dove W rappresenta la matrice di adiacenzadel grafo con i soli followers di dimensione n × n, e b è il vettore didimensione n×1 che indica con quali agenti è in diretta comunicazioneil leader.

Se, come ipotizzato, è presente un albero di copertura durante ogni istantet, allora la matrice W (t) è sempre invertibile quindi ogni elemento di W (t)−1

risulta limitato in modulo (ipotesi derivata da [a, a]). Considerando che perquesto motivo le topologie possibili di un grafo sono limitate, ciò implica cheanche le possibili strutture della matrice W (t) lo siano. Questo implica cheancheW (t)−1 è de�nito su un numero di strutture limitate e ciò è equivalentea dire che det(W (t)) 6= 0 durante ciascun intervallo di transizione [tj, tj+1).Quanto detto porta a scrivere che:

b(t) = −W (t)1n −→ −W (t)−1b(t) = 1n

La dinamica del sistema, da cui si ricavano direttamente le conclusionidel teorema, può essere quindi riscritta come segue:

ξ −W (t)1nξr = −γ(ξ − 1n ⊗ ξr) + [W (t)−1 ⊗ Im]δ

Da quanto �n'ora asserito si capisce anche l'importanza della scelta delparametro γ al �ne di ottenere una velocità di convergenza desiderata nel-l'inseguimento al riferimento. In �gura 5.2 sono illustrati tre test di trackingottenuti con γ = 1. Nel primo viene inseguito una rampa con il risultato�nale di errore a regime nullo; nel secondo viene inseguito un segnale di in-gresso composto dalla somma di due sinusoidi; mentre nel terzo il trackingviene realizzato su segnale reale di posizione preso durante un test.

Page 72: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 72

Fig. 5.2: Tracking examples

Un confronto fra due soluzioni ottenute prendendo due coe�cienti γ di-versi è ra�gurata in �gura 5.3 dove, partendo da uno stato iniziale arbitra-rio diverso da zero, tre agenti inseguono il riferimento prima con γ = 1 esuccessivamente con γ = 10.

Fig. 5.3: Tracking examples with γ = 1 and γ = 10

Page 73: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 73

Una realizzazione pratica del Consensus Tracking qui proposto, può es-sere fatta de�nendo inizialmente un numero di �ltri pari a N − 1 (dove N èil numero degli agenti dello sciame). Poiché a seconda della topologia dellarete il vettore ξ sarà ricevuto solo dai neighbours, l'agente dovrà poi con-siderare valide le sole dinamiche attinenti a quel gruppo di agenti e dovràcosì invalidare tutte le altre. Occorre porre molta attenzione a questo pro-cedimento poiché l'invalidazione non si realizza ponendo nulli gli ingressi (per cui verrebbe calcolata ugualmente la dinamica considerando dei segnalidi riferimento nulli), bensì annullando le uscite delle singole dinamiche. Nelcapitolo 8 verrà illustrato con maggior precisione e con l'utilizzo di Simulinkquanto appena detto.

5.3 Esempi

Nei test che seguono vengono riprese delle tipologie di task proposte anchenel capitolo 4.4, ora però interpretate considerando il problema decentraliz-zato. Tutte le simulazioni seguenti sono e�ettuate utilizzando:

1. Una realizzazione Simulink del sistema funzionante a tempo discreto.

2. La simulazione di un Network reale con possibili modi�che delle co-municazioni (purché sia sempre garantita la presenza di un alberoricoprente con radice) e con un ritardo di 0.1sec.

3. Il �ltro di consenso proposto in questo capitolo con γ = 5.

4. Il meccanismo di Obstacle Avoidance proposto nel capitolo 4.3 ottenutocon r = 5 e rmin = 1.

5. Una parametrizzazione delle DF per cui si utilizza il seguente vettoreper indicarle [px, py, A, θ, σx, σy, K,K2, fov,DFtype, task]T .

5.3.1 Uniform Deployment

E' stato deciso di analizzare come primo caso un task di Uniform De-ployment, realizzato con uno swarm formato da quattro agenti inizialmentegià posizionati all'interno del poligono/quadrato poly in cui è anche de�nitoil task. Il quadrato ha vertici {(0, 0), (0, 20), (20, 20), (20, 0)} e la TDF e leADFs sono così de�nite:

Page 74: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 74

d∗(q) =

{1, se q ∈ poly0, altrimenti.

ADF1 = [2, 2, 2, 0, 4, 4, Gauss, UniDep]ADF2 = [5, 5, 2, 0, 4, 4, Gauss, UniDep]ADF3 = [2, 5, 2, 0, 4, 4, Gauss, UniDep]ADF4 = [5, 2, 3, 0, 3, 3, Gauss, UniDep]

La situazione iniziale è quella espressa nella prima immagine di �gura 5.4in cui si nota che la cTDF è già completamente contenuta all'interno di poly.

Fig. 5.4: Uniform Deployment: Task Complete

Al termine della simulazione (vedi seconda immagine di �gura 5.4) gliagenti si sono distribuiti all'interno dello spazio delimitato dal poligono se-condo un equilibrio de�nito dalle forze di attrazione e repulsione. Nell'im-magine di �gura 5.5 viene mostrata la stima dell'andamento del funzionaledi costo fatta da ciascun agente attraverso la legge di consenso 5.1. Mentrele oscillazioni sul valore �nale sono dovute alla vicinanza di un minimo lo-cale che viene raggiunto con un passo di discesa troppo elevato, il fatto chedopo una brusca discesa vi sia una leggera risalita è invece dovuto alle forzerepulsive che gli agenti si scambiano per evitare le collisioni. Dopo un bre-ve transitorio iniziale, i valori stimati convergono, ad indicare che gli agentihanno una visione omogenea dello stato di risoluzione del task. La stimadel funzionale di costo è però solo la conclusione di un processo di stima che

Page 75: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 75

vede come variabili di stato i parametri indicativi delle DFs. Vale infatti laseguente relazione:

J(ξ, q) =

∫Q

max(0, d∗(q, t)−N∑i=1

di(ξ))2dq (5.3)

Fig. 5.5: Uniform Deployment: Cost Functional

5.3.2 E�ective Coverage

In un problema di E�ective Coverage, dove rispetto al caso di UniformDeployment gli agenti tendono a muoversi di più, i �ltri di stima garantisco-no comunque il tracking dei parametri. Quello che qui si vuole dimostrareè infatti l'e�cacia del �ltro all'inseguimento dei valori di posizione e rota-zione che hanno una dinamica molto più veloce che nell'esempio precedente.Per questo motivo agli agenti sono state assegnate delle DFs con fov checomportano una continua variazione anche del parametro θ.

ξ = [px, py, A, θ, σx, σy, DFtype, task,K,K2, fov] :

ADF1 = [5, 5, 3, 0, 4, 4, DFG, EffCov, . . . ]ADF2 = [10, 10, 4, 0, 3, 3, DFSG, EffCov, 3,−0.2, π/2]ADF3 = [5, 2, 5, 0, 6, 6, DFSG, EffCov, 3,−0.2, π/4]ADF4 = [2, 5, 5, 0, 3, 3, DFSG, EffCov, 2,−0.2, π/1.5]

Page 76: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 76

d∗(q) =

{5, se q ∈ poly0, altrimenti.

Dove l'area di de�nizione del task è contenuta nel poligono poly i cuivertici sono: {(0, 0), (0, 50), (50, 50), (50, 0)}. Nelle immagini che seguonosono indicate le stime fatte dagli agenti in relazione ai parametri pq1, pq2 e θdel terzo agente.

Fig. 5.6: Agent parameters estimation: px (red), py(green) and θ (blue).

Gli ingrandimenti mettono a risalto il processo di stima a tempo discreto.Nell'immagine 5.7 a sinistra viene ra�gurato il transitorio iniziale che portaall'inseguimento dei parametri imposti dal root ; nel riquadro di destra èra�gurata invece una fase di passaggio nella stima del valore di pq1.

Fig. 5.7: Agent parameters estimation: initial phase zoom(left), and a generalphase of the pq1 estimation tracking process (right).

Page 77: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

5. Controllo Decentralizzato 77

Anche la stima del funzionale di costo viene quindi eseguita correttamente(dato che dipende direttamente da quella dei singoli parametri) e in �gura 5.9è possibile veri�care quanto appena detto. Dopo un breve transitorio inizialetutti gli agenti convergono sullo stato globale dello swarm e ciò, come giàdetto per l'esempio precedente, garantisce la corretta esecuzione del task.

Fig. 5.8: E�ective Coverage: Cost Functional with a zoom on the initial phase ofthe estimation process

Fig. 5.9: E�ective Coverage: an estimation of cTDF and TEF realized by agentn◦2.

Page 78: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

6. CONNETTIVITÀ

L'utilizzo dell'algoritmo di Consensus Tracking proposto nel capitolo pre-cedente comporta che all'interno di ogni sub-network sia presente un alberodi copertura con radice. Lo studio di questo problema può essere ricondot-to alla teoria della Connectivity Maintenance, che si occupa di garantire ilmantenimento di alcune proprietà del grafo durante l'esecuzione del task,ovvero durante il moto degli agenti nello spazio. Il problema di connettivitàpuò essere studiato direttamente dall'osservazione del Laplaciano, andandoa valutare l'autovalore λ2. Come scritto anche nell'appendice A, è possibilemettere in relazione la condizione λ2 > 0 con la presenza di un albero dicopertura nel network che è la proprietà che si vuole mantenere.

Fig. 6.1: Connectivity Range

In questa tesi il problema non viene studiato dal punto di vista analitico,ma viene proposta invece una soluzione pratica (con un approccio di tipo con-servativo), realizzabile nuovamente con le funzioni descrittive. Considerandola distanza massima a cui gli agenti possono comunicare è possibile de�nireuna circonferenza di diametro pari a quel valore. All'interno di questa area lecomunicazioni fra gli agenti sono ovviamente garantite ed è per ciò presenteanche un albero di copertura (di tipo rooted se il grafo è orientato).

Page 79: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

6. Connettività 79

6.1 L'Agente Virtuale

Sfruttando le proprietà di simmetria e omni-direzionalità, è possibile uti-lizzare una DFG per de�nire un'area di interesse all'interno della quale gliagenti devono muoversi per mantenere la connettività. Questa funzione, cheprenderà il nome di Connectivity Descriptor Function, o C(pV , q), può esserede�nita come segue:

CDF = C(pV , q) = Ae−0.5(

(q1−pVx )2

σ2x+

(q2−pVy )2

σ2y)

(6.1)

I parametri σx e σy possono essere scelti arbitrariamente in funzione delrange di comunicazione (ovviamente σx = σy), mentre la posizione pV èlegata al moto di un agente virtuale che si muove utilizzando tale DF. Questoagente, che può essere simulato da una Ground Station o da uno degli altriveicoli/velivoli (ma i cui parametri devono essere stimati da tutti), si muovein direzione della massimizzazione fra la CDF e la TDF , per cui vale:

(pVq1 , pVq2) = uV (t) = K

∫Q

d∗(p, q)∂C(pV , q)

∂pVdq (6.2)

Dove K è il guadagno dell'algoritmo trovato come nell'equazione 4.5,dove veniva invece scritto nella forma 2β. La CDF, che è solo virtuale, noncomporta nessuna modi�ca al problema di minimizzazione del funzionale dicosto, ma serve solo a muovere lo sciame in maniera compatta. Gli agentireali, invece, si muovono con la seguente legge di controllo in cui è inserito ilproblema di connettività:

ui(t) = 2β

∫Q

{max(0, C(pV , q)eA(p, q) + C(pV , q))}∂di(p, q)

∂pidq (6.3)

Il doppio utilizzo della C(pV , q) serve per due motivi ben precisi: il primoè legato a mantenere valida la funzione di errore eA(p, q) solo all'internodell'area dove è garantita la connettività (può essere interpretato come unaoperazione di �ltraggio); il secondo è legato a far sì che, quando eA(p, q) = 0,rimanga comunque presente un contributo sempre attivo che tiene gli agenti

Page 80: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

6. Connettività 80

vicini e comunicanti (può essere invece interpretato come un task di StaticCoverage sempre presente). La CDF è quindi utilizzata come una lente sucui focalizzare l'attenzione degli agenti.

Fig. 6.2: TEF vs max(0, C(pV , q)eA(p, q) + C(pV , q))

E' inoltre opportuno ricordare che, in presenza di task la cui dinamica èvariabile in funzione della posizione degli agenti (ad esempio E�ective Cove-rage e Dynamic Coverage), non viene tenuto conto del valore della CDF, chenon prende quindi parte al calcolo della cTDF , come è logico aspettarsi.

Fig. 6.3: Connectivity Maintenance

Nella �gura 6.3 è messa a confronto l'esecuzione di un task di E�ecti-ve Coverage senza preoccuparsi del problema di connettività (a sinistra), econsiderando la soluzione con CDF (a destra). Lo swarm è costituito daDFs tutte con fov ed il range di comunicazione è di 40m. La CDF è inveceparametrizzata nel seguente modo:

Page 81: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

6. Connettività 81

C(A, pq1, pq2, σq1, σq2) = [3, pV q1, pV q2, 12, 12]

Mentre nel primo caso la limitazione sul range non viene rispetta, datoche non è neppure una variabile considerata nel problema, nel secondo casola connettività viene mantenuta a discapito di una velocità di movimentodegli agenti minore. La linea spezzata in colore nero indica invece il motodella CDF. In �gura 6.4 il problema viene complicato, ma comunque risolto,con l'aggiunta di ostacoli scenici.

Fig. 6.4: Connectivity Maintenance with Obstacles

Una soluzione alternativa a quella appena trattata può essere realizzataassegnando dinamicamente il ruolo di agente virtuale ad un elemento realedello swarm. Considerando di volta in volta l'agente che sta svolgendo megliodegli altri il task, e che quindi si presume abbia nelle sue vicinanze la maggiorrichiesta di risorse, è stato pensato di far coincidere la posizione di massimaintensità della CDF con quella di questo agente. Il criterio di assegnamentoscelto in questa tesi è legato de�nizione del seguente parametro chiamatoActual Contribute:

ACki =

∫Q

dki (p, q)dk∗(q, t)dq (6.4)

Dove con i si considera l'agente generico e con k il task in esecuzione.Ciascun agente, utilizzando un �ltro di Consensus Tracking, dovrà stimareanche i valori di ACk

j degli altri elementi dello swarm. Per far si che tutti gliagenti possano avvicinarsi alla posizione del Leader (sia esso virtuale o reale)

Page 82: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

6. Connettività 82

è inoltre opportuno rallentarne la velocità. In �gura 6.5 è utilizzata questatecnica per risolvere il medesimo task proposto in �gura 6.3.

Fig. 6.5: Connectivity Maintenance with Leader Election and the Agents ACsDynamics

Per evitare che ci sia una frequenza troppo elevata di assegnamenti èpossibile ricorrere a soluzioni pratiche speci�che, come nel caso illustrato di�gura 6.6, in cui viene garantito che un agente, una volta diventato leader,mantiene tale proprietà per un almeno un certo lasso di tempo. Occorre in�nericordare che un numero elevato di switching comporta un rallentamento delmoto dello swarm che però dà la possibilità agli agenti di avvicinarsi.

Fig. 6.6: Connectivity Maintenance with Leader Election (Low Freq. Switching)and the Agents ACs Dynamics

Page 83: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. ASSEGNAMENTO DELLE RISORSE

7.1 Introduzione

Come già accennato nel capitolo 4.4.5, l'assegnamento delle risorse puòessere a�rontato nel framework delle funzione descrittive come un problemadi minimizzazione del funzionale di costo. La soluzione che ne deriva puòperò essere a�etta da problematiche legate alla presenza di minimi locali enon è quindi garantito il raggiungimento del miglior assegnamento possibile.

Si propone pertanto l'utilizzo di un algoritmo di assegnamento determini-stico (in contrasto con quanto fatto ad esempio in [23]), dove il problema vienestudiato nei seguenti termini: �Dato un insieme di TDF {DF1, DF2, . . . },ed un insieme di ADF {ADF1, ADF2, . . . }, qual è la legge di assegnamentoagente-task migliore?�.

7.2 L'algoritmo Ungherese

Il �Problema di Assegnamento� può essere studiato su un grafo bipartitoG = (N,A) dove:

• N è l'insieme dei nodi de�nito su due sottoinsiemi separati per cuiN = N1

⋃N2.

• A è l'insieme degli archi de�nito secondo il prodotto cardinale A =N1 ×N2.

Nel framework delle funzioni descrittive N1 rappresenterà l'insieme delleTDFs mentre N2 rappresenterà quello delle ADFs. Occorrerà così trova-re, dopo aver de�nito un peso/costo per ogni arco, l'assegnamento di costomassimo costituito dall'insieme B ⊆ A tale che:

B = arg max{C(A′) : A′ ⊂ A,∀i ∈ N1 :

∃j ∈ N2 : (i, j) ∈ A′∀j ∈ N2 : ∃i ∈ N1 : (i, j) ∈ A′} (7.1)

Page 84: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 84

Dove C(A′) =∑

(i, j) ∈ A′ci,j.

Per quanto riguarda il valore del costo c(i, j) dell'arco che unisce i nodi(i, j), è stato scelto di de�nirlo come la quantità di risorse che l'agente puòapportare al task ovvero l'integrale della ADFi per l'esecuzione del task j.

c(i, j) =

∫Q

dji (p, q)dq (7.2)

Dove la posizione p in cui deve essere calcolata la ADF può essere sceltain maniera arbitraria purché si faccia allo stesso modo anche per gli altriagenti (in questo modo i valori calcolati possono essere correttamente pa-ragonati). In aggiunta alla formula precedente è anche possibile de�nire ilcosto c(i,j) in termini percentuali, considerando il contributo risolutivo cheha un agente nell'eseguire un task. In altre parole si può de�nire un �degreeof completeness�:

DOC = c(i, j) =

∫Q

dji (p, q)dq∫Q

dj∗(q, t)dq(7.3)

In questo modo se un agente fornisce un numero di risorse maggiore ouguale a quelle richieste dal task si otterrà un valore DOC ≥ 1 ad indicareche è in grado di completare da solo e per intero il task; in caso contrariosi otterrà banalmente DOC ≤ 1. La situazione che si viene a creare, aprescindere dal tipo di valore c(i, j) scelto, è quella espressa nella seguentetabella, dove con N edM sono indicati rispettivamente il numero degli agentied il numero dei task che devono essere eseguiti.

ADF1 ADF2 . . . ADFN

TDF1 c(1,1) c(1,2) . . . c(N,1)TDF2 c(2,1) c(2,2) . . . c(N,2). . . . . . . . . . . . . . .TDFM c(M,1) c(M,2) . . . c(N,M)

Tab. 7.1: Task Assignment Table

Page 85: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 85

Nulla vieta inoltre di assegnare ad un valore di c(i, j) = 0 ad indicareche quell'agente non è assolutamente in grado di risolvere quel task o alter-nativamente che quell'agente non possiede risorse utili a fronteggiare quelladeterminata richiesta. Nel formalismo matematico proprio della program-mazione lineare booleana è possibile scrivere il problema di assegnamentocome segue, nelle ipotesi standard in cui gli elementi c(i, j) sono dei costi chedevono essere minimizzati e vale N = M :

MINIMUM WEIGHTED PERFECT TASK ASSIGNMENTPROBLEM IN A BIPARTITE GRAPH

min∑

(i,j)∈A

c(i,j)x(i,j) (7.4)

Con:

•∑

(i,j)∈Ax(i,j) = 1∀i ∈ N1

•∑

(i,j)∈Ax(i,j) = 1∀j ∈ N2

• x(i,j) = 0, 1∀(i, j) ∈ A

Per la risoluzione del problema è quindi possibile applicare l'algoritmodi Munkres chiamato anche metodo ungherese, che realizza l'accoppiamentodi costo minimo nelle ipotesi N = M . Anche se per questo algoritmo sonostate elaborate delle soluzioni nel caso in cui M 6= N , come ad esempioquelle studiate da Bourgeois e Lassalle (vedi [14]), è comunque preferibilemodi�care di volta in volta il problema in modo da poter sempre gestireuna tabella quadrata. Questa scelta viene fatta perché solo così è possibileincludere nella soluzione �nale tutti gli agenti presenti nello swarm. Gliaccoppiamenti proposti in[14] (caso N > M) fornirebbero infatti al massimoM assegnamenti e lascerebbero N −M agenti non operativi. Il problemain cui M 6= N può essere riportato allo studio di un problema �quadrato�N = M tenendo conto di possibili raggruppamenti fra gli agenti. In questomodo N sarà indice del numero di sottogruppi con cui è possibile suddividerelo swarm:

• Nelle ipotesi iniziali N > M ogni agente de�nisce un insieme di sotto-tabelle quadrate in modo da coprire tutti i casi possibili di raggruppa-mento fra agenti; il numero di raggruppamenti per tabella sarà pari alnumero di Starling di seconda specie.

Page 86: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 86

• Per ciascuna di queste possibili sotto-tabelle viene applicato l'algoritmodi accoppiamento di Munkres.

• Il risultato dell'algoritmo de�nirà quindi per ciascuna sotto-tabella ilmatching sottogruppo/task ed anche il valore percentuale totale dirisoluzione dei task che fornisce tale accoppiamento.

• Ogni agente eseguirà quel task de�nito dalla sotto-tabella il cui mat-ching garantirà il massimo valore percentuale di completamento totale.

• Nei casi particolari in cui valeM > N , o quando il problema presentatonei punti precedenti non garantisce la risoluzione di tutti i task, vengonovia via scartati i task meno incombenti �no ad ottenere nuovamente lacondizione N = M .

Per comprendere quanto a�ermato, è stato fatto il seguente esempio dovesono presenti due task {DF1, DF2} e tre agenti {ADF1, ADF2, ADF3}. Ogniagente, noti i vari c(i,j), deve costruire un numero di tabelle pari al numerodi Stirling di seconda specie che viene calcolato come segue:

Num. Tabelle =

(nk

)=

1

k!

k∑j=0

(−1)k−j(kj

)jn (7.5)

Dove con n sono indicati gli elementi dell'insieme e con k è indicato ilnumero di gruppi con cui deve essere e�ettuata la suddivisione. Nel caso inesame vale n = 3 e k = 2 per cui il numero di tabelle è pari a 3. Utilizzandoil parametro costo di tipo percentuale si ottengono le seguenti tabelle:

TAB. 1 ADF1 + ADF2 ADF3

TDF1 c(1,1)+c(1,2) c(1,3)TDF2 c(2,1)+c(2,2) c(2,3)

TAB. 2 ADF1 + ADF3 ADF2

TDF1 c(1,1)+c(1,3) c(1,3)TDF2 c(2,1)+c(2,3) c(2,3)

TAB. 3 ADF2 + ADF3 ADF1

TDF1 c(1,2)+c(1,3) c(1,1)TDF2 c(2,2)+c(2,3) c(2,1)

Tab. 7.2: Task Assignment Example

Page 87: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 87

Con i valori da sostituire pari a:c(1, 1) = 0.8, c(1, 3) = 0.0, c(1, 3) = 1.2c(1, 2) = 0.4, c(1, 3) = 0.8, c(1, 3) = 1.0c(1, 3) = 1.5, c(1, 3) = 0.2, c(1, 3) = 0.4

Per utilizzare l'algoritmo di Munkres su ciascuna delle tre tabelle è di fattonecessario trasformare il problema di massimo in un problema di minimo,dato che, per come sono stati scritti i pesi c(i, j), questi più che rappresentaredei costi rappresentano l'e�cienza. Riportare un problema di massimo aduno di minimo è comunque una cosa abbastanza banale e si può seguire laprocedura qui indicata:

1. Si sottrae ad ogni elemento della tabella il valore 1 ad indicare che ognitask presente deve essere eseguito in maniera completa, cioè le richiestedevono essere per lo meno esaudite al 100%.

2. Si modi�cano i valori dei coe�cienti nel seguente modo:c(i, j)′ = Inf, if c(i, j) < 0

c(i, j)′ = c(i, j)−1, if c(i, j) > 0

c(i, j)′ = max c(i, j)′ + 1, if c(i, j) = 0

L'algoritmo di Munkres può così essere applicato seguendo questa proce-dura:

1. Si Sottrae ad ogni riga l'elemento minimo della stessa.

2. Si cerca un possibile accoppiamento task/agenti in considerazione allecaselle che contengono un valore nullo, in modo da ottenere così il costorelativo minimo.

3. Se non è possibile trovare un accoppiamento si sottrae ad ogni colonnal'elemento minimo della stessa in modo da ottenere degli zeri anche suogni colonna della tabella.

4. Si cerca un accoppiamento possibile task/agenti dal costo relativo nulloe, se non è possibile trovarlo, si riparte dal punto iniziale in manieraiterativa.

Page 88: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 88

I risultati di assegnamento sono quindi i seguenti, dove con il valore 1 ède�nito l'assegnamento fra il task e il gruppo di agenti:

TAB. 1 ADF1 + ADF2 ADF3

TDF1 0 1TDF2 1 0

TAB. 2 ADF1 + ADF3 ADF2

TDF1 1 0TDF2 0 0

TAB. 3 ADF2 + ADF3 ADF1

TDF1 1 0TDF2 0 0

Tab. 7.3: Task matching with munkres algorithm

L'unico assegnamento possibile è dunque quello espresso nella prima ta-bella, per cui la richiesta di risorse del primo task sarà soddisfatta al 150%,mentre quella del secondo task al 120%. E' comunque importante notare che,anche se il totale di percentuale di completamento è maggiore scegliendo disuddividere gli agenti come indicato nella tabella due ( 2.3+0.8 ), il fatto cheil secondo task non venga portato a compimento ( 80% ) discrimina questascelta. Qualora poi non fosse possibile arrivare ad una soluzione del proble-ma, perché, ad esempio, non è presente alcuna tabella che assegna ciascuntask ad almeno un agente, è sempre possibile scartare il task a priorità piùbassa e ripetere l'algoritmo così come sopra indicato. I compiti precedente-mente scartati potranno essere eseguiti successivamente, dopo aver portatoa compimento quelli a priorità più elevata. Per ogni task è quindi indispen-sabile considerare un parametro che ne identi�ca la priorità: questo valorepuò o essere de�nito a priori o ad esempio essere calcolato in funzione dellaTDF.

Una ulteriore modi�ca alla soluzione del problema di Task Assignmentpuò essere fatta in relazione alla percentuale di completamento con cui sivuole portare a termine un task. Una volta de�nite le tabelle, al posto disottrarre il valore 1, ad indicare il completamento totale del task, è possibilesottrarre un valore diverso compreso nel range 0÷1, ad indicare che quel com-pito deve essere eseguito perlomeno a quel valore percentuale. Se ad esempioviene sottratto un valore 0.8, ciò comporta che la richiesta di risorse espressadal task deve essere coperta almeno all'80%. In questo modo si può renderepiù vario e dinamico il problema, nel senso che in istanti di tempo diversi è

Page 89: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 89

possibile gestire la risoluzione di un insieme di task andando ad aumentareo a diminuire il valore minimo percentuale di completamento. Ovviamenteciò comporta la realizzazione e la gestione di un vettore di dimensione parial numero dei task che contiene tali valori:

Minimum Degree of Completeness = mDOC

t1t2...tM

(7.6)

L'implementazione di questo algoritmo comporterà quindi l'aggiunta dialcuni parametri da dover stimare:

• Gli agenti dovranno comunicare i valori di c(i, j).

• Un agente �particolare� di tipo leader, implementato anche da unaground-station, può comunicare le variazioni del vettore mDOC.

La soluzione proposta ha però un difetto riscontrabile nell'elevato numerodi tabelle che un agente deve gestire in alcuni casi. Il numero di sottogruppipossibili aumenta infatti in funzione del numero di agenti coinvolti ed infunzione del numero dei task, il tutto secondo il numero di seconda specie diStirling. Qui di seguito è proposta la tabella che indica, a seconda dei valoriN e M , il numero di raggruppamenti:

N/M 1 2 3 4 5 6 7 8 91 12 1 13 1 3 14 1 7 6 15 1 15 25 10 16 1 31 90 65 15 17 1 63 301 350 140 21 18 1 127 966 1701 1050 266 28 19 1 255 3025 7770 6951 2646 462 36 1

Tab. 7.4: Starling Number of the Second Kind

Page 90: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 90

7.3 Esempio

Un primo test per veri�care il funzionamento dell'algoritmo di assegna-mento delle risorse può essere fatto considerando nuovamente il problema diTerget Assignment. Questa volta però si hanno a disposizione tre diverseTDF con delle corrispettive DFs per gli agenti. Quello che si vuole ottenere èfare in modo che a ciascuna gaussiana che costituisce la TDF venga assegnatoun agente con identiche proprietà.

Fig. 7.1: Optimal Target Assignment

L'applicazione dell'algoritmo può quindi essere utilizzata prima dell'ap-plicazione della legge di controllo proposta nel capitolo 4, in modo da scartareper ogni agente i target che non devono essere raggiunti. Per l'esempio inquestione sono state scelte le seguenti DF:

TDF1 = DFG(A, pq1, pq2, σq1, σq2) = [2, 05, 15, 2, 2]TDF2 = DFG(A, pq1, pq2, σq1, σq2) = [3, 15, 10, 3, 3]TDF3 = DFG(A, pq1, pq2, σq1, σq2) = [4, 20, 20, 3, 3]ADF1 = DFG(A, pq1, pq2, σq1, σq2) = [2, 10, 10, 2, 2]ADF2 = DFG(A, pq1, pq2, σq1, σq2) = [3, 05, 10, 3, 3]ADF3 = DFG(A, pq1, pq2, σq1, σq2) = [4, 10, 05, 3, 3]

IL risultato che si ottiene è quello aspettato così come si può vedere in�gura 7.1 dove sotto ogni �campana� ve ne è un'altra di uguali dimensioni.Qualora si fosse risolto questo assegnamento utilizzando unicamente le leggedi controllo proposta nel capitolo 4, il risultato ottenuto sarebbe stato quellodi �gura 7.2, in cui con le linee tratteggiate sono indicati i percorsi seguitidagli agenti senza aver fatto task assignment.

Page 91: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

7. Assegnamento delle Risorse 91

Fig. 7.2: Target Assignment with Resource Allocation (solid line) VS Simple TargetAssignment (dot line)

Page 92: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. HARDWARE TESTBED

8.1 Introduzione

Veri�cate all'interno dei capitoli precedenti le capacità risolutive del fra-mework, è stato deciso di e�ettuare un test anche in una applicazione reale.Per questa prova sono state utilizzate due �mini-car� 4WD radio-controllatedi proprietà dell'Università di Pisa che andranno a costituire i due agentireali dello swarm. Dato che entrambi questi veicoli non posseggono un hard-ware su�ciente a far girare in real-time gli algoritmi proposti nella tesi, èstata adottata una soluzione di ripiego che sfrutta l'utilizzo di agenti virtua-li simulati su PC. Questi ultimi genereranno i Way-Point che verranno poiraggiunti dalle macchinine con una guida di tipo LOS Steering.

Fig. 8.1: Mini-Car Testbed

8.2 Mini-Car

Le Mini-Car sono delle HSP 1/10 Scale Brontosaurus Electric 4WD Mon-ster Truck modi�cate con l'aggiunta dell'elettronica necessaria per rendere

Page 93: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 93

possibile lo sviluppo di compiti cooperanti di base (vedi ad esempio in [24] e[25] l'applicazione pursuer/thief ). Le caratteristiche principali possono esserecosì schematizzate:

• Alimentazione con batteria da modellismo da 7.2V .

• Controllo Elettronico della velocità ESC.

• Quattro ruote motrici.

• Larghezza: 310mm, Lunghezza: 400mm, Altezza: 185mm.

• Peso: 3Kg. Carico massimo: 1Kg.

Fig. 8.2: Mini-Car

Per migliorare le performances di comunicazione, navigazione e controllosono stati aggiunti i seguenti componenti elettronici:

• Ublox LEA-4H: è il modulo Gps utilizzato come unico strumentodi navigazione; il suo utilizzo è necessario non solo per calcolare laposizione e la velocità ma anche per e�ettuare la sincronizzazione degliagenti tramite il segnale periodico PPS. La frequenza di aggiornamentodei dati è pari a 4Hz.

• XBee-Pro: Dispositivo utilizzato per la trasmissione wireless dei datifra gli agenti.

• Circuito di alimentazione con in ingresso una tensione di circa 8V for-mato da due regolatori lineari monolitici: 7805CT (per regolare i 5Vnecessari al µC) e LM1086 (per regolare i 3.3V necessari al ricevitoreGPS e al modulo XBee).

Page 94: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 94

• Pic 30F6014A: Processore su cui è eseguito il �rmware.

Il motore di trazione e di sterzo è quindi controllato usando un µC Pic30F6014A che converte i comandi che arrivano da seriale RS-232 in segnaliPWM. Un importante problema che viene risolto con l'utilizzo del GPS èinvece quello della sincronizzazione fra gli agenti che è necessaria per evitarela collisione dei pacchetti durante la comunicazione.

L'utilizzo di XBee-Pro permette infatti due modalità di funzionamento:la prima in Unicast Mode che implementa un meccanismo di �acknowledg-ment and retransmission�, e la seconda di tipo Broadcast Mode, dove nonvengono però gestite le perdite di pacchetti a causa delle collisioni (vedi [24]e [25] per approfondimenti). Alla luce di quanto detto sopra è stato decisodi implementare un protocollo di tipo TDMA (Time Division Multiple Ac-cess), dove il tempo viene suddiviso in intervalli di durata �ssa di 150ms, aloro volta ripartiti in un numero �sso di N slot (porzioni) temporali, con Npari al numero degli agenti. Questo protocollo permette di utilizzare e�ca-cemente una comunicazione di tipo half-duplex (1Mbps) e Broadcast Modeconiugando l'alta velocità di trasmissione alla collision avoidance sulla comu-nicazione. In questo modo è anche possibile utilizzare e�cientemente tuttoil canale. Il problema fondamentale che rende complessa l'implementazionedi un algoritmo di questo tipo è la necessità di una entità centralizzata chesincronizzi i clock di tutti gli agenti indipendenti. Nell'applicazione in esamequesto ruolo é a�dato al ricevitore GPS attraverso il segnale PPS (Pulse perSecond).

All'interno del �rmware implementato sul µC viene anche messo a di-sposizione un meccanismo di selezione del destinatario che però non vienesfruttato nella comunicazione fra veicoli. Ogni agente è infatti caratterizzatoda un numero identi�cativo, e prima di utilizzare le informazioni ricevute daXBee controlla se nel campo �destinatario� di quel pacchetto è speci�cato ilsuo indirizzo o quello di broadcast. Se così non è, il pacchetto viene scartato.Questa funzionalità aggiuntiva viene invece sfruttata dalla stazione di terrache può così speci�care per ciascun agente un diverso comando di controlloqualora ce ne sia bisogno.

Allo stato attuale del �rmware è in�ne opportuno ricordare che uno slotha dimensione 15ms (predisposizione per uno swarm con un numero di agentipari a N = 10). Anche se nel test reale gli agenti saranno solo due, ed unoslot è utilizzato dalla stazione di terra, è stato deciso di mantenere invariatoil numero di suddivisioni, lasciando così inutilizzati i sette slot rimanenti (i15ms sono su�cienti per la comunicazione dei dati). In queste condizioniè possibile concludere che le comunicazioni avvengono ad una frequenza di6.67Hz dato che ogni agente comunica una sola volta all'interno dei 150ms.

Page 95: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 95

8.2.1 Cinematica

Dal punto di vista del modello cinematico una mini-car può essere ap-prossimata ad un triciclo, assumendo le condizioni di sterzata studiate daAckermann (Ackermann's Steering).

Fig. 8.3: Mini-Car: Kinematic

Le equazioni cinematiche che governano il moto sono de�nite in funzionedelle tre variabili di stato {x, y, θ}, e delle due variabili {v, ϕ} che de�nisconogli ingressi:

x = cos(θ)v

y = sin(θ)v

θ = 1L

tan(ϕ)v

(8.1)

Mentre il vettore [x, y] rappresenta la posizione del punto materiale ri-spetto al sistema di riferimento inerziale, θ indica l'orientazione del veicoloovvero la direzione del vettore velocità rispetto alla terna inerziale. I due in-gressi [v, ϕ] rappresentano rispettivamente il modulo della velocità del veicoloe l'angolo di sterzo relativo rispetto a θ. Per rendere il modello cinematicoancora più simile al veicolo reale è stato deciso di aggiungere al sistema diequazione 8.1 una discontinuità di tipo saturazione, dovuta al massimo gradodi sterzo attuabile:

|ϕ| ≤ π

12(8.2)

Page 96: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 96

8.2.2 Controllo del Veicolo

Il sistema di controllo del veicolo è stato realizzato e migliorato in diver-si lavori di tesi di laurea triennale fra i quali è opportuno ricordare [24] e[25]. All'interno del �rmware il controllore viene realizzato da una funzioneche aggiorna i suoi output alla stessa frequenza di quella che si occupa dellacomunicazione (ovvero 6.67Hz). Questa scelta, oltre che la più semplice darealizzare, è anche motivata dal fatto che il GPS, che è l'unico sensore dinavigazione, fornisce nuovi dati ogni 4Hz e sarebbe quindi inutile aumen-tare la frequenza di esecuzione. E' stato così realizzato il seguente schema,rappresentativo di una architettura di controllo su più livelli:

Fig. 8.4: MiniCar Control Scheme

Il livello più basso è realizzato intorno al funzionamento del blocchet-to Action che de�nisce, in funzione del valore in ms che ha in ingresso, ilcorretto duty cycle dei segnali PWM con cui sono comandati i due attua-tori di trazione (throttle) e sterzo (theta/steering). I due valori msthrottlee mstheta possono o essere generati secondo delle opportune mappe caratte-ristiche de�nite all'interno del blocchetto precedente, oppure essere speditidirettamente da terra via XBee con un apposito comando. In quest'ultimomodo è possibile realizzare il pilotaggio della macchinina via joystick (a se-conda del movimento della cloche verranno generati i due segnali). Questoprimo livello di controllo è quindi funzionante in anello aperto dato che nonc'è retroazione del valore e�ettivo di sterzata o di trazione. Occorre inoltre

Page 97: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 97

ricordare che da terra è possibile spedire anche i due valori throttle e thetada cui sono calcolati i rispettivi valori in ms.

Il controllo di secondo livello, che in �gura 8.4 viene de�nito dal blocchettoLow Level Control, si occupa di regolare la velocità e l'heading del veicolo(in terna NED) rispetto ai valori di riferimento imposti o da terra o dalsistema di guida. Questo processo è realizzato in anello chiuso e sfrutta laretroazione delle informazioni provenienti dal sensore di navigazione GPS.Sia per il segnale di velocità che per quello di heading il controllore utilizzatoè di tipo Proporzionale Integrativo PI (vedi �gura 8.5 e la relazione [24]per avere i dati e�ettivi), in cui la componente integrativa é limitata dauna saturazione che evita un sovraccarico nelle situazioni in cui l'agente haproblemi a muoversi (ad esempio quando l'attrito dell'erba è elevato).

Fig. 8.5: Speed PI Controller

Il terzo ed ultimo livello è quello che comprende il sistema di guida chefornisce i riferimenti di velocità Vdes ed heading φdes in relazione ad una leggedi tipo LOS Steering (vedi Fossen [26]). Il sistema prende come ingressoun valore di posizione che viene spedito da terra in coordinate NED (unWay-Point). Sulla macchinina questo valore viene utilizzato per elaborare iriferimenti da fornire al Low Level Control che sono quindi in funzione delladistanza d che incorre fra il veicolo reale ed il Way-Point:

Vdes =

3m/s, if d ≥ 10m

1.5m/s, if 5m < d < 10m

1m/s, if 3m < d ≤ 5m

(8.3)

Φdes = atan2(dy, dx); (8.4)

Page 98: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 98

8.2.3 Agenti Reali e Virtuali

Pur avendo a disposizione un µC su ogni MiniCar, questo non è su�cientea far girare in real-time gli algoritmi di controllo e consenso proposti inquesta tesi. Per far fronte a questo inconveniente è stato quindi deciso di fargirare tutto su PC, che gestisce quindi uno swarm di N agenti che verrannochiamati virtuali. Ogni secondo (quindi con frequenza di 1Hz), il PC sioccupa di mandare la posizione raggiunta dai veicoli virtuali ai corrispettiviveicoli reali (de�nendo un destinatario nella comunicazione). Il sistema diguida riconoscerà così l'arrivo del nuovo Way-Point e de�nirà i riferimentiutili per i controllori di velocità e heading.

Considerando poi che le macchinine sono solamente due è stato deciso direalizzare su Simulink dei �simulatori dinamici � di MiniCar in modo che perogni agente virtuale ci potesse comunque essere una �macchinina� in gradodi inseguirlo. Questo espediente è servito per due motivi: il primo, testarela fattibilità della soluzione prima di implementarla direttamente sulle Mini-Car, il secondo, osservare se anche con più veicoli reali vengono mantenutele condizioni di collision avoidance (i veicoli reali/simulati hanno bisogno diuno spazio di manovra al contrario di quelli virtuali). In questa concezioneesisteranno quindi tre tipi di veicoli:

• Virtuali: realizzati con Simulink su PC, sono comandati secondo glialgoritmi di controllo proposti nel capitolo 4 e 5. La loro dinamica ède�nita dal singolo integratore. Con frequenza 1Hz i valori di posizioneraggiunti diventano i Way-Point per i veicoli di tipo reale e simulato.

• Reali: sono le due MiniCar e sono guidati con una legge di tipo LOSverso i Way-Point generati dai veicoli virtuali. Per eludere gli erroridi posizione che provengono dall'utilizzo GPS, il way-point viene con-siderato raggiunto dal veicolo una volta che questo si trova entro unadistanza di 3m.

• Simulati: funzionano come i veicoli reali ma sono però realizzati conSimulink. Vengono utilizzati quando il numero di veicoli virtuali èmaggiore di due. La dinamica di questi veicoli è stata realizzata inmaniera molto semplice, considerando il modello cinematico più unsistema del primo ordine per approssimare l'attuazione.

Un test realizzato su Simulink, fatto quindi con la sola presenza di agentivirtuali e simulati, ha dimostrato l'e�cacia di questa soluzione. Per l'occa-sione è stato scelto di svolgere una operazione di Dynamic Coverage con unoswarm composto da 4 agenti:

Page 99: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 99

TDF = d∗(q, k + 1) = max(0, 0.1 + d∗(q, k)−D(p, q, k))∀q ∈ Q

ADF −→ ξ = [px, py, A, θ, σx, σy, DFtype, task,K,K2, fov] :ADF1 = [05, 05, 4, 0, 3, 3, DFSG, DynCov, 3,−0.2, π/2]ADF2 = [10, 25, 4, 0, 3, 3, DFSG, DynCov, 3,−0.2, π/2]ADF3 = [15, 05, 5, 0, 6, 6, DFSG, DynCov, 3,−0.2, π/4]ADF4 = [25, 35, 5, 0, 3, 3, DFSG, DynCov, 2,−0.2, π/1.5]

Fig. 8.6: Dynamic Coverage Trajectories: Virtual Car [solid lines] VS SimulatedCar [dashed lines]

Dalla �gura 8.6 è possibile vedere come le traiettorie sono quasi semprecoincidenti ad indicare che l'inseguimento da parte dei veicoli simulati vieneeseguito correttamente. Il motivo è anche da riscontrare nel fatto che per gliagenti virtuali è stata scelta una velocità massima molto bassa di 0.1m/s.

Fig. 8.7: Cost Functional

Page 100: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 100

Questo espediente serve sia per agevolare i veicoli a raggiungere i Way-Point, ma è anche la condizione utile per ottenere un passo migliore nelladiscesa del gradiente (più il passo è piccolo e più si evitano oscillazioni intornoad un minimo). L'andamento del funzionale di costo indica inoltre che il taskviene correttamente eseguito dato che questo decresce e rimane così sotto unacerta soglia di con�denza.

8.3 Il Test

L'hardware testbed è stato e�ettuato al campo sportivo CONI di Pisautilizzando la pedana del salto in alto come spazio operativo. Pur avendo adisposizione l'intero prato è stato scelto di lavorare in questa zona sia perchéè più asciutta (l'elettronica sulle macchinine non è coperta), sia perché l'erbapuò rallentare ed intralciare il cammino dei veicoli. Questa scelta ha peròcomportato lo svantaggio di dover lavorare in un ambiente ristretto in cui leincertezze che a�iggono i dati provenienti dal GPS (errore di misura più ilbias) possono compromettere la corretta esecuzione del task.

Durante la giornata di test sono state eseguite diverse prove, ognuna diqueste caratterizzata dall'esecuzione di un particolare tipo di task. In questasezione però, per brevità della trattazione, verranno riportati solo i risultatidelle operazioni di Static Coverage e di E�ective Coverage. In ogni caso, intutti i task, è stato utilizzato uno swarm composto da tre agenti dove ai primidue di questi viene assegnata una Mini-Car reale, mentre al terzo viene fattocorrispondere un veicolo simulato.

Fig. 8.8: Hardware Testbed

Per far coincidere all'avvio di ciascun test la posizione dei veicoli virtualicon quella dei veicoli reali, (posizionati arbitrariamente nell'environment), è

Page 101: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 101

stata realizzata una breve fase di set-up, su�ciente ad inizializzare la po-sizione dell'agente virtuale con il dato proveniente dal GPS della Mini-Carcorrispondente. L'origine degli assi di riferimento viene centrato in un puntopre�ssato di cui sono note le coordinate ECEF. Per i casi qui analizzati sifarà riferimento al sistema disegnato in �gura 8.8. Un task di Static Coverageè stato eseguito utilizzando le seguenti funzione descrittive:

ξ = [px, py, A, θ, σx, σy, DFtype, task,K,K2, fov] :

TDF = d∗(q) = [25,−5, 4, 0, 8, 8, DFG, StatCov, . . . ]∀q ∈ polyP

ADF1 = [9.4, 1.5, 1, 0, 2, 2, DFG, StatCov, . . . ]ADF2 = [21, 1.5, 2, 0, 2, 2, DFG, StatCov, . . . ]ADF3 = [16.1,−4.2, 3, 0, 2, 2, DFG, StatCov, . . . ]

Il poligono P all'interno del quale è de�nito il task altro non è che ilperimetro della pedana utilizzata come spazio operativo. I vertici di tale po-ligono sono: {(0, 0), (10, 10), (30,−5), (25,−15), (0, 0)}. La massima velocitàconsentita per un agente virtuale è 0.3m/s.

I risultati del test sono riassunti nelle immagini seguenti dove vengonoillustrate le traiettorie seguite per soddisfare la richiesta di risorse concentratain (25,−5). Come si può vedere dall'immagine di sinistra le Mini-Car e iveicoli simulati seguono gli agenti virtuali, arrestandosi ogni qual volta sitrovano ad una distanza minore di 3m.

Fig. 8.9: Mini-Cars Trajectories in a Static Coverage Operation: Virtual Agents(solid line) VS Real/Simulated Cars (dashed line)

Page 102: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 102

Le traiettorie delle Mini-Car illustrate nelle immagini sono ottenute do-po un �ltraggio atto ad eliminare le incertezze provenienti dal GPS. Primavengono eliminati gli outliers, dopodiché si sfrutta un �ltro passa-basso delprimo ordine per smussare i percorsi.

Fig. 8.10: Static Coverage: Cost Functional

L'andamento del funzionale di costo in �gura 8.10 indica che gli agentisi sono mossi verso la risoluzione del task ma le loro qualità operative nonsono su�cienti a portarlo a termine. Le oscillazioni intorno al valore �nalesono invece dovute al passo troppo elevato nella discesa del gradiente causatodalla velocità massima con cui si muovono gli agenti virtuali pari a 0.3m/s(si potrebbero rallentare ma il test risulterebbe troppo lungo).

Un secondo test è stato fatto eseguendo un task di E�ective Coverageall'interno del medesimo spazio operativo. Le DFs degli agenti sono stateprese nel seguente modo:

ξ = [px, py, A, θ, σx, σy, DFtype, task,K,K2, fov] :

ADF1 = [15,−1.5, 5, 0, 2, 2, DFSS, EffCov, 2,−0.5, π/2]ADF2 = [23.9,−9.7, 1, 0, 2, 2, DFG, EffCov, . . . ]ADF3 = [16.1, 1.5, 2, 0, 1, 1, DFG, EffCov, . . . ]

Nell'immagine di �gura 8.11 sono indicate le traiettorie percorse dai vei-coli. Anche qui l'inseguimento viene correttamente eseguito sia da parte delveicolo simulato che dalle Mini-Car. E' però importante osservare come ilsecondo veicolo reale, di colore verde tratteggiato passi molto vicino all'osta-colo e questo inconveniente è dovuto alla legge di guida scelta. Utilizzando

Page 103: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

8. Hardware Testbed 103

altre guide è sicuramente possibile migliorare questa situazione realizzandol'inseguimento con più precisione e con maggiori margini di sicurezza.

Fig. 8.11: Mini-Cars Trajectories in a E�ective Coverage Operation: VirtualAgents (solid line) VS Real/Simulated Cars (dashed line)

In �gura 8.12 è indicato l'andamento del funzionale di costo stimato daitre agenti. Rispetto al caso precedente non si presentano oscillazioni e ciò èdovuto al fatto che i veicoli sono ancora in movimento quando viene interrottala simulazione. Quanto appena detto conferma il fatto che le oscillazioni,causate da una velocità troppo elevata, si riscontrano solo in vicinanza diminimi locali ovvero quando l'agente è in procinto di arrestarsi.

Fig. 8.12: E�ective Coverage: Cost Functional

Page 104: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

9. CONCLUSIONI

In quest'ultimo capitolo sono riportate le conclusioni �nali sul lavoro svol-to nella presente tesi. Sono così elencati sia gli obiettivi raggiunti, a confermadella validità delle procedure e delle soluzioni utilizzate, sia le problemati-che ancora aperte, che potrebbero invece costituire gli spunti per ulterioriapprofondimenti e ricerche.

• A partire dal framework delle funzioni descrittive, così come propostoin [1] e [2], in questa tesi sono state de�nite delle nuove tipologie di DFche aggiungono maggiore versatilità e adattabilità a quanto già esisten-te. Nello speci�co vengono realizzate delle nuove DF con �eld of viewe viene aggiunta la capacità di ruotare all'interno dell'ambiente opera-tivo. Con delle simulazioni e dei test è stata poi provata l'e�cacia dellenuove soluzioni in relazione a quanto presente nel vecchio framework.

• L'utilizzo di un algoritmo di tipo discesa del gradiente, come propostoin [2], è servito alla risoluzione del problema di ottimo senza però ga-rantire la globalità della soluzione. Poiché il gradiente per sua naturaconduce esclusivamente a punti critici locali, una scelta ad hoc di J(p, q)potrebbe invece portare all'esistenza di un unico minimo globale. Inogni caso non è stato ancora trovata una soluzione a questo problemache rimane aperto a possibili sviluppi futuri.

• E' stato inserito nel framework un meccanismo di Obstacle Avoidanceutilizzando la teoria dei �campi repulsivi�. Ne è stata dimostrata l'ef-�cacia sia dal punto di vista pratico che da quello teorico, utilizzandoin quest'ultimo caso il metodo di Lyapunov.

• E' stato proposto un controllo di tipo decentralizzato basato sull'uti-lizzo degli algoritmi di consenso. Gli agenti, comunicando con i solineighbours, riescono a portare a termine un problema di controllo glo-bale risolvendolo attraverso una struttura distribuita. Nella risoluzionedi questo problema è stato utilizzato l'algoritmo di consenso di tipoReference Tracking proposto da Ren in [18].

Page 105: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

9. Conclusioni 105

• E' stato risolto, sempre con l'utilizzo del Framework delle FunzioniDescrittive, anche il problema di connettività in modo da garantire leipotesi necessarie alla convergenza dell'algoritmo di Consensus Trac-king. Per il caso speci�co sono state proposte due soluzioni: la prima,in cui viene simulata la presenza di un agente virtuale a cui occorre sta-re vicini, e la seconda, in cui questo compito viene delegato agli agentireali.

• E' stato proposto un possibile algoritmo di assegnamento deterministicodelle risorse fra gli agenti utilizzando l'algoritmo di Munkres. Questorisolve un problema di tipo �minimum weighted perfect task assignmentproblem in a bipartite graph�.

• E' stato e�ettuato un �hardware testbed � servendosi di due minicar diproprietà dell'Università di Pisa. Mancando l'hardware su�ciente perfar girare in real-time gli algoritmi sui µC presenti nelle macchinine,è stato scelto di optare per la soluzione descritta nel capitolo 8. Unpossibile sviluppo potrebbe quindi essere quello di potenziare le mac-chinine sia con dei µC più preformanti sia aggiungendo altri sensori dinavigazione (IMU, optical �ow sensors, ultrasonic sensor, . . . ).

Page 106: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Appendice A

TEORIA DEI GRAFI

Nelle pagine che seguono, sono elencate una serie di de�nizioni utili ri-guardanti la teoria dei gra�. Per una migliore comprensione è stato sceltodi a�ancarle, là dove necessario, ad esempi pratici tutti facenti riferimentoal grafo disegnato nella �gura A.1. In ogni caso un generico grafo è rappre-sentabile attraverso la seguente espressione, dove V rappresenta l'insieme deinodi o vertices ed E l'insieme degli archi o edge:

G(V ;E)

Fig. A.1: Graph Example

• Un Grafo si dice Non Orientato o Undirected quando ogni arco nonpossiede una direzione di preferenza. Alternativamente quando la con-nessione i −→ j ha lo stesso valore della connessione j −→ i.

• Un grafo si de�nisce Orientato o anche Directed Graph se l'insieme de-gli archi è formato da coppie ordinate di nodi: in altre parole l'arcoche collega i vertici (vi, vj) può essere disegnato con una freccia che

Page 107: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Appendice A. Teoria dei Gra� 107

va dal nodo vi al nodo vj . Un esempio di insieme di archi orien-tati può essere formalizzato attraverso una espressione del tipo E ={(1, 2), (2, 3), (2, 4), (4, 1), (3, 4), (5, 4)}.

• Un Grafo si dice Connesso se, presa una qualunque coppia di nodi,esiste sempre un cammino che ha quei vertici come iniziale e �nale.Un grafo non orientato che non contiene cicli viene chiamato Albero.Pertanto, il grafo di riferimento A.1 risulta quindi connesso ma non èun albero.

• Dato un Grafo Connesso G(V,E) si de�nisce Spanning Tree o AlberoRicoprente, un sotto-grafo di G dove sono presenti tutti i nodi contenutiin V , ma in cui gli elementi di E sono scelti in modo da non formarecicli. Un esempio può essere quello riportato nella �gura A.2.

Fig. A.2: Spanning Tree Graph

• Un albero si dice Pesato se esiste una funzione che associa un valorenumerico (cioè un peso) ad ogni arco.

• Un grafo orientato è Fortemente Connesso o Strongly Connected se perogni coppia di nodi esiste un cammino orientato che li connette.

• Un grafo è semplicemente Connesso o Weakly Connected se esiste uncammino non orientato che connette ciascuna coppia di nodi arbitraria.

• Le due precedenti de�nizioni, nel caso di grafo non orientato, sonocoincidenti.

• Si de�nisce grado di un nodo il numero di nodi adiacenti a quest'ultimo.

Page 108: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Appendice A. Teoria dei Gra� 108

• Si de�nisce Matrice dei Gradi la matrice diagonale, semi-de�nita po-sitiva, di dimensione n× n (con n numero dei nodi), in cui l'elementoposto sulla riga i − esima è calcolato con il valore del grado del nodoi− esimo.

∆(G) =

2 0 0 0 00 3 0 0 00 0 2 0 00 0 0 4 00 0 0 0 1

• La Matrice di Adiacenza di un generico grafo rappresenta lo stato diconnessione di ogni singolo nodo e de�nisce se esiste o meno un arcoche collega il nodo i − esimo al nodo j − esimo ( nel caso di grafoorientato la matrice sarà simmetrica ). Il valore dell'elemento genericoaij può avere uno dei due seguenti valori:

aij =

{1, se ∃E : vj −→ vi ovvero E(j, i),

0, altrimenti.

A(G) =

0 1 0 1 01 0 1 1 00 1 0 1 01 1 1 0 10 0 0 1 0

• La matrice di adiacenza A(G) di un grafo non orientato è sempre unamatrice simmetrica.

• Qualora il grafo sia orientato, è possibile invece descrivere anche laMatrice di Incidenza I(G) che tiene conto dell'orientazione dell'arcofra due nodi. Preso un grafo in cui sono presenti n nodi ed m archisi ottiene una matrice di dimensione n ×m, in cui il singolo elementovale:

Page 109: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Appendice A. Teoria dei Gra� 109

iij =

+1, se l'arco E(i, j) è entrante

−1, se l'arco E(i, j) è uscente

0, altrimenti.

• Si de�nisce operatore Laplaciano di un grafo la matrice risultante dalladi�erenza fra la matrice dei gradi e quella di adiacenza.

L(G) = ∆(G)− A(G) =

2 −1 0 −1 0−1 3 −1 −1 00 −1 2 −1 0−1 −1 −1 4 −10 0 0 −1 1

• Il Laplaciano è di notevole importanza poiché fornisce informazioniimportanti sullo studio della rete. Studiando gli autovalori di L(G) sipuò infatti notare che:

1. Gli autovalori rispettano la seguente disequazione λ1 ≤ λ2 ≤ · · · ≤(2 ∗GradoMax).

2. L'autovalore λ1 risulterà sempre nullo ovvero λ1 = 0.

3. Il grafo non orientato risulta connesso se e solo se λ2 > 0.

• Anche in presenza di gra� orientati è possibile parlare di alberi rico-prenti. Con il termine Rooted Directed Tree viene infatti sottinteso ilgrafo orientato nel quale è presente un nodo in cui tutti gli archi sonouscenti. Un grafo di questo tipo è anche Spanning, ovvero ricopren-te, quando mette in connessione tutti i vertici. Mentre nel caso deigra� non orientati la proprietà di Rooted Directed Spanning Tree è pre-sente non appena il grafo è connesso, nel caso orientato è importantesottolineare che tale proprietà si veri�ca solo in presenza di un grafofortemente connesso ma non vale il viceversa.

• Un albero con radice, o Rooted Tree, è un albero con un nodo particolarechiamato radice. Da questo nodo tutti gli archi sono uscenti.

Page 110: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Appendice A. Teoria dei Gra� 110

Fig. A.3: Rooted Tree

• Un albero orientato, oDirected Tree, è un albero i cui nodi sono collegaticon archi orientati.

Fig. A.4: Directed Rooted Tree on node C

Page 111: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

BIBLIOGRAFIA

[1] Innocenti M., Control of a Swarm of Heterogeneous Vehicles: FinalReport, 2009.

[2] Niccolini M., Swarm Abstractions for Distributed Estimation andControl, PhD Thesis, Università di Pisa, 2009.

[3] Innocenti M., Niccolini M., Pollini L., Multivalued Consensus for aSwarm of Heterogeneous Agents I, Icra 2010, September 2009.

[4] Innocenti M., Niccolini M., Pollini L., Multivalued Consensus for aSwarm of Heterogeneous Agents II, Icra 2010, September 2009.

[5] Niccolini M., Pollini L., Innocenti M., Decentralized Control of Swarmswith Collision Avoidance Implication.

[6] Olfati Saber R., Fax A., Murray M., Consensus and Coordination inNetworked Multi-Agent Systems, Proceeding of the IEEE, Jenuary 2007.

[7] Ren W., Beard R., Distributed Consensus in Multi-Vehicle CooperativeControl , Springer, 2008.

[8] Bullo F.,Distributed Control of Robotics Networks � A MathematicalApproach to Motion Coordination Algorithms, March 22, 2009.

[9] Hussein I., Stipanovic M., E�ective Coverage Control for Mobile Sensor,Conference of Decision and Control IEEE, 2006.

[10] Murray M., Spanos P., Olfati Saber R., Dynamic Consensus for MobileNetworks, IFAC, 2005.

[11] Olfati-Saber R., Murray M., Consensus Protocols for Networks of Dyna-mic Agents, Proceedings of the American Control Conference, Denver,Colorado, June 4-6, 2003.

[12] Murphy Robert R, Introducion to AI Robotics, Ronald C. Arkin Editor,The MIT Press, 2000.

Page 112: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Bibliogra�a 112

[13] Michael A. Goodrich, Potential Fields Tutorial, Computer ScienceDepartment TMCB, Brigham Young University.

[14] F. Bourgeois, J.C. Lassalle, An Extension of the Munkres Algorithmfor the Assignment Problem to Rectangular Matrices, CERN , Geneve,Switzerland, 1971.

[15] Schenato L., Distributed Estimation and Consensus , Università diPadova, 7 July 2009, Siena.

[16] Antonelli G., Interconnected Dynamic System , IEEE Control SystemMagazine, February 2013.

[17] Howard A., Mataric M. and Sukhatme G., Mobile sensor network de-ployment using potential �elds: A distributed scalable solution to thearea coverage problem, 2002.

[18] Ren W., Consensus Tracking under Directed Interaction TopologiesAlgorithms and Experiments American Control Conference, Seattle,Washington, USA 2008.

[19] Giulietti F., Pollini L., Innocenti M., Autonomous Formation FlightIEEE Control Systems Magazine, December, 2000.

[20] Hussein I., Stipanovic M., E�ective Coverage Control for Mobile SensorNetworks With Guaranteed Collision Avoidance IEEE Transaction onControl Systems Technology, VOl. 15, NO. 4, July 2007.

[21] Olfati-Saber R., Flocking for Multi-Agent Dynamic Systems, TechnicalReport CIT-CDS 2004-2005.

[22] Mesbahi M., Egerstedt M., Graph Theoretic Method in MultiagentNetwork, Princeton University Press.

[23] Niccolini M., Innocenti M., Pollini L.,Multiple UAV Task Assignmentusing Descriptor Function.

[24] Della Santina C., Aringhieri A.,Sviluppo di un Testbed per l'analisi dialgoritmi di cooperazione tra veicoli.

[25] Tranzatto M.,Sviluppo di un protocollo di comunicazione per veicolicooperanti.

[26] Fossen T. I.,Lecture Notes on Guidance and Control of Vehicles TTK4190.

Page 113: Controllo di uno Sciame di Robot utilizzando il Framework ... · Universita di Pisa FACOLT A DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria dell'Automazione Tesi di Laurea

Bibliogra�a 113

[27] Ren W., Consenus Tracking under Directed Interaction Topologies:Algoritms and Experiments, AACC American Control Conference, 2008.

[28] Kennedy J., Eberhart R. C., Swarm Intelligence, Morgan KaufmannPublisher, 2001.

[29] Passino K. M., Biomimicry for Optimization, Control, and Automation,Springer, 2005.

[30] Bonebeau E., Dorigo M., Theraulaz G., Swarm Intelligence: fromnatural to arti�cial systems, Oxford University Press 1999.

[31] Niccolini M., Innocenti M., Pollini L., Near optimal Swarm Deploymentusing Decsriptor Functions, IEEE International Conferenceon Roboticsand Automation, Vol.1, Anchorage, AK, USA, May, 2010.

[32] Bracci A., Innocenti M., Pollini L., Cooperative Task Assignment UsingDynamic Ranking, 17th IFAC World Congress, Seul, South Korea, July2008.

[33] Ren W., Cao Y., Distributed Coordination of Multi-agent Networks,Springer, 2011.

[34] Hussein L. I., Stipanovich D., Wang Y., Reliable Coverage Control UsingHeterogenous Vehicles, 46 IEEE Conference on Decision and Control,New Orleans, LA, USA, December 2007.

[35] Martionli M., Mondada F., Mermoud G., Correl N., Egerstedt M.,Hsieh M., Parker L., Stoy K., Distributed Autonomous Robotic Systems,Springer, January 2013.

[36] Pallottino L., Sistemi Robotici Distribuiti, Laurea Specialistica in Inge-gneria dell'Automazione/Laurea Magistrale in Automazione e Robotica,Centro E.Piaggio, Università di Pisa, Facoltà di Ingegneria.