Modellazione di comportamenti adattivi per agenti
Transcript
Modellazione di comportamenti adattivi per agenti
degli Studi di Roma \La Sapienza" Universita di Ingegneria Facolta Corso di Laurea Triennale in Ingegneria Informatica relazione di stage Modellazione di comportamenti adattivi per agenti robotici all'interno di un ambiente dinamico Laureando: Fernando Risi Relatore: Luca Iocchi Anno Accademico: 2006-2007 Ringraziamenti Questa pagina contiene i miei ringraziamenti alle persone che mi hanno aiutato, sostenuto, o che comunque reputo importante vengano menzionate. Anzitutto desidero esprimere la mia gratitudine al Prof. Luca Iocchi, per avermi introdotto al mondo dell'intelligenza articiale e per avermi concesso l'opportunita di poter lavorare nel mondo della Robocup. Vorrei inoltre ringraziare tutti i compagni del Team SPQR per l'aiuto, la compagnia ed i preziosissimi consigli. Un rigraziamento speciale va alla mia famiglia ed ai miei amici che mi sono sempre stati vicini. Indice 1 Introduzione 4 1.1 Traccia dell'esposizione . . . . . . . . . . . . . . . . . . . . . . 2 Agenti robotici in ambiente dinamico 6 7 2.1 Agenti robotici . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Scenario applicativo: la Robocup . . . . . . . . . . . . . . . . 9 2.3 Architettura del team S.P.Q.R. . . . . . . . . . . . . . . . . . 13 3 Modellazione di piani tramite Petri Net Plans 14 3.1 Generalita sulle Reti di Petri . . . . . . . . . . . . . . . . . . . 14 3.2 Descrizione del comportamento di un agente robotico tramite Petri Net Plans . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4 Il simulatore 3D USARSim 21 4.1 Architettura di USARSim . . . . . . . . . . . . . . . . . . . . 22 4.2 Unreal Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Il protocollo di comunicazione . . . . . . . . . . . . . . . . . . 23 4.4 World Controller . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.5 WorldControllerClient2007 . . . . . . . . . . . . . . . . . . . . 26 2 INDICE 5 Pianicazione del moto in ambiente dinamico 3 28 5.1 Il paradigma delle velocita relative . . . . . . . . . . . . . . . 29 5.2 Velocita determinata . . . . . . . . . . . . . . . . . . . . . . . 33 6 Conclusioni 36 6.1 Obiettivi raggiunti . . . . . . . . . . . . . . . . . . . . . . . . 36 6.2 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 A Installazione ed utilizzo di USARSim 38 Capitolo 1 Introduzione La seguente relazione descrive il lavoro svolto durante lo stage trimestrale tenutosi presso il DIS (Dipartimento di Informatica e Sistemistica della Facolta di Ingegneria dell'Universita di Roma \La Sapienza") in collaborazione con il gruppo SPQR Legged. Tale gruppo, composto da studenti e ricercatori, partecipa ogni anno alla Lega Sony Legged [WEB-4L] della competizione internazionale RoboCup [WEB-RB]. Figura 1.1: Sony AIBO Ers7 4 CAPITOLO 1. INTRODUZIONE 5 Il programma dell'edizione della Robocup di Atlanta 2007 prevede una challenge di \obstacle avoidance" in cui due robot di una squadra devono attraversare il campo evitando gli altri robot presenti sul percorso (per una completa descrizione della challenge si rimanda a [WEB-CH07]). Una prova di questo tipo interessa molti ambiti e potrebbe essere oggetto di almeno tre stage di questo tipo. Si potrebbe suddividere il problema in: 1. riconoscimento degli ostacoli a partire dall'immagine acquisita dalla telecamera del robot; 2. tracciamento degli ostacoli, in modo da avere informazioni precise sulla posizione e sulla velocita, robusto ai rumori della percezione; 3. pianicazione di un percorso che eviti urti con i robot precedentemente tracciati. Nello stage cui riferisce questa relazione si e focalizzata l'attenzione sull'ultimo punto che puo essere cos riformulato: \pianicazione del moto di un robot mobile da una congurazione iniziale ad una nale evitando gli urti con gli ostacoli presenti nell'ambiente". Nella problematica classica, ove il robot e vincolato al movimento su un piano, per congurazione si intende posizione e rotazione del robot. Per ambiente dinamico si intende un ambiente in cui la congurazione degli ostacoli non rimane ssa per tutto il tempo necessario al robot per espletare il suo compito. La mancanza dei primi due moduli, sviluppati in parallelo da altri membri del team, non ha permesso il testing immediato sul robot possibile, almeno CAPITOLO 1. INTRODUZIONE 6 in parte, solo nell'ultima dell'attivita di stage. Si e quindi ricorso all'uso di un simulatore di ambienti robotici USARSim, descritto nel capitolo 4, grazie al quale e stata possibile un'accurata attivita di testing. 1.1 Traccia dell'esposizione Nel capitolo 2 vengono introdotti il concetto di agente robotico ed ambiente dinamico. Successivamente si descrive l'architettura adottata dal team S.P.Q.R.; nel capitolo 3 viene denito il formalismo basato sulle Reti di Petri per la denizione di piani; nel capitolo 4 viene descritto il simulatore di ambienti robotici 3D USARSim utilizzato durante lo sviluppo del modulo; nel capitolo 5 viene presentato il paradigma delle velocita relative, utilizzato per rilevare le collisioni previste; nel capitolo 6 sono esposti gli obiettivi raggiunti e gli sviluppi proposti per il futuro al ne di migliorare le prestazioni del robot in presenza di ostacoli; nell'appendice A viene descritta la procedura per la corretta installazione di USARSim . Capitolo 2 Agenti robotici in ambiente dinamico In questo capitolo viene data la denizione di agente razionale autonomo e di agente robotico o robot (in [RN98] viene denito robot un agente articiale attivo il cui ambiente e il mondo reale). Vengono illustrate le caratteristiche hardware e software che lo deniscono, e le proprieta che lo rendono in grado di operare in ambienti dinamici, incerti e imprevedibili. 2.1 Agenti robotici Nell'ambito dell'intelligenza articiale un agente e un sistema che ha la capacita di percepire alcune caratteristiche dell'ambiente circostante tramite sensori ed intervenire su di esso tramite attuatori (gura 2.1). In particolare ciascun agente e costituito da due componenti: il programma d'agente (che realizza la corrispondenza tra percezioni e azioni) e l'architettura (che 7 CAPITOLO 2. AGENTI ROBOTICI IN AMBIENTE DINAMICO 8 Figura 2.1: Struttura di un agente robotico costituisce il meccanismo di calcolo tramite il quale viene eseguito il programma d'agente). Compito dell'architettura e fornire al programma d'agente i dati provenienti dai sensori, eseguire il programma d'agente e trasmettere agli attuatori le azioni scelte dal programma man mano che queste vengono generate. L'insieme delle percezioni no all'istante preso in considerazione e denito \sequenza di percezione". Per ogni sequenza di percezione si puo denire un agente razionale come l'entita in grado di compiere azioni che massimizzino i valori attesi delle misure prestazionali, ovvero i criteri che determinano il grado di successo dell'agente in riferimento ad un obiettivo pressato. La progettazione di un agente e indissolubilmente legata all'ambiente in cui l'agente opera. In [IOC99] e oerta la seguente classicazione dell'ambiente: dinamicita (staticita): l'ambiente varia anche mentre l'agente e in fase di elaborazione imprevedibilita (prevedibilita): l'ambiente, data la sua complessita e la CAPITOLO 2. AGENTI ROBOTICI IN AMBIENTE DINAMICO 9 sua parziale accessibilita risulta essere, dal punto di vista dell'agente, non deterministico parziale osservabilita (completa osservabilita): l'ambiente non e interamente osservabile e l'agente non puo' venire a conoscenza di tutte le sua caratteristiche Altro aspetto fondamentale nella denizione di un agente razionale riguarda la sua autonomia: un sistema e autonomo quando il suo comportamento viene determinato dalla sua esperienza personale. Sarebbe inoltre ragionevole dotare un agente di una conoscenza di base oltre alla capacita di apprendimento; ma la denizione piu comune di autonomia e quella per cui \un agente e autonomo se in grado di eseguire compiti complessi in ambienti reali, senza l'assistenza o la supervisione umana". E' questa la strada che si sta cercando di percorrere nell'ambito della RoboCup, ovvero rendere i robot in grado di giocare una partita di calcio in maniera del tutto autonoma. (Per una denizione piu esaustiva di agente robotico e di intelligenza articiale si rimanda a [NAR06] e [RN98]) 2.2 Scenario applicativo: la Robocup La Robocup (Robot Soccer World Cup) e un campionato internazionale nato nel 1993 con l'obiettivo di sviluppare automi per promuovere la ricerca e l'istruzione nel campo dell'intelligenza articiale. La prima edizione, si svolse nel 1997 a Nagoya (Giappone). Ma il traguardo, forse troppo ambizioso e sicuramente molto lontano, del- CAPITOLO 2. AGENTI ROBOTICI IN AMBIENTE DINAMICO 10 la RoboCup e quello di creare entro il 2050 una squadra di robot in grado di battere i vincitori dei mondiali di calcio, ripetendo il successo del supercomputer della IBM \Big Blue" che nel 1997 sconsse Garry Kasparov, grande maestro di scacchi russo, campione del mondo dal 1985 al 2000. L'idea di usare il calcio per fare sperimentazioni con i robot fu avanzata per la prima volta nel 1992 nel saggio \On Seeing Robots" di Alan Mackworth [WEB-OSR], professore di informatica alla University of British Columbia in Canada. Mackworth era convinto che il calcio ponesse una sda maggiore degli scacchi, poiche i robot avrebbero dovuto vedere e interagire tra loro. In parallelo, ma separatamente, nel 1992 un gruppo di ricercatori giapponesi organizzo a Tokio un seminario su \Le Grandi Sde dell'Intelligenza Articiale": si discusse su come utilizzare il calcio per promuovere la scienza e la tecnologia. Figura 2.2: l'agente robotico Sony AIBO ERS7 L'elevata complessita ed eterogeneita delle problematiche arontate ha portato gli organizzatori ad operare una suddivisione delle iniziative. Ne e CAPITOLO 2. AGENTI ROBOTICI IN AMBIENTE DINAMICO 11 nata una organizzazione del progetto in Leghe. Una delle leghe previste e la 4 Legged league, in cui e previsto l'utilizzo dell'agente robotico AIBO ERS-7 (g. 2.2). Nelle gure 2.3. e 2.4 sono presentati i sensori e gli atturatori dell'ERS-7. Figura 2.3: sensori ed attuatori di AIBO Figura 2.4: sensori ed attuatori di AIBO (robot di schiena) Le competizioni prevedono incontri di due tempi, della durata di 10 mi- CAPITOLO 2. AGENTI ROBOTICI IN AMBIENTE DINAMICO 12 nuti, tra due squadre composte da quattro robot Sony AIBO. L'ambiente in cui i robot si trovano ad operare e una particolare ricostruzione di un campo da calcio (Figura 2.5). Figura 2.5: l'ambiente di gioco Risulta evidente che la progettazione dell'architettura e del programma d'agente dovranno tenere conto di un ambiente reale: dinamico: varia piuttosto velocemente a causa della presenza di molti agenti che interagiscono con la palla imprevedibile: il programma d'agente degli avversari non e noto, sarebbe comunque molto costoso, da un punto di vista computazionale e progettuale, modellare e prevedere l'evoluzione di uno stato iniziale parzialmente osservabile: non sempre le percezioni (anche utilizzando quelle comunicate dagli altri robot) forniscono dati attendibili dell'ambiente CAPITOLO 2. 2.3 AGENTI ROBOTICI IN AMBIENTE DINAMICO 13 Architettura del team S.P.Q.R. Dal 2005 il team S.P.Q.R. utilizza l'architettura GT2004 [WEB-GT04], presentata nella Robocup di Lisbona del 2004, caratterizzata da ottime scelte progettuali ed una forte modularita che ha permesso la rapida integrazione del codice sviluppato dai membri dell'SPQR. Come si puo notare dalla Figura 2.6 l'architettura e di tipo deliberativo (per una panoramica delle tipologie di architettura si rimanda a [ST-PP]): il usso di informazioni passa interamente per il modulo gestore del comportamento. Cio comporta una parziale perdita di reattivita compensata da opportuni accorgimenti in fase di pianicazione. Figura 2.6: architettura utilizzata da SPQR dal 2005 Capitolo 3 Modellazione di piani tramite Petri Net Plans Questo capitolo presenta una rapida introduione al formalismo dei Petri Net Plans con una descrizione delle caratteristiche principali e dei meccanismi che regolano la loro evoluzione. Per una denizione puntuale si rimanda a [ST-PP], [ST-FG] e [ZIP04]. 3.1 Generalita sulle Reti di Petri Una rete di Petri (conosciuta anche come rete posto/transizione o rete P/T) e una delle rappresentazioni matematiche di un sistema distribuito discreto. Come un linguaggio di modellizzazione, esso descrive la struttura di un sistema distribuito come un grafo bipartito con delle annotazioni. Ovvero, una rete di Petri ha dei nodi posti, dei nodi transizioni e degli archi diretti che connettono posti e transizioni. Le Reti di Petri sono un linguaggio 14 CAPITOLO 3. MODELLAZIONE DI PIANI TRAMITE PNP 15 formale graco con il quale e possibile modellare sistemi caratterizzati dall'essere concorrenti, asincroni, distribuiti, paralleli, non deterministici e/o stocastici [MUR89]. Il primo ad introdurre questo formalismo e stato nel 1962 da Carl Adam Petri in [PET62], e grazie del suo grande potere di modellamento (pari a quello delle macchine di Turing) ha trovato numerosi campi di applicazione. [MUR89] fornisce la seguente denizione formale: Una Rete di Petri e una quintupla P N =< P; T ; F; W; M0 > dove: P T F W = ft1 ; t2 ; :::; t m g e un insieme nito di places ; g e un insieme nito di transitions ; ( ) [ ( ) e un insieme di archi (relazioni di usso); : ! f1 2 3 g e una funzione di peso; ! f0 1 2 3 g e la marcatura iniziale; 0 : [ =;e \ =; M P = fp1 ; p2 ; :::; p P F P T n T T ; ; ; P P ; ::: ; ; ; ::: T La struttura di una Rete di Petri (P,T,F,W) senza nessuna marcatura iniziale specicata e denotata N. Una Rete di Petri data una marcatura iniziale e denotata da (N,M0 ). Una Rete di Petri e un grafo diretto, pesato e bipartito, con uno stato M0 chiamato marcatura iniziale, in cui i nodi del grafo possono essere di tipo Place (Figura 3.1) o Transition (Figura 3.2), collegati da archi direzionati e pesati che possono congiungere solo nodi di diverso tipo. La marcatura M consiste in un vettore di n interi positivi, dove n e il numero dei places della Rete. La p-esima componente del vettore di marcatura ( ) denota il numero di token associati al p-esimo place (in gura 3.3 un M p CAPITOLO 3. 16 MODELLAZIONE DI PIANI TRAMITE PNP Figura 3.1: Place Figura 3.2: Transition esempio di place con tre token associati). Figura 3.3: Place con 3 tokens Se esiste un arco da un place p ad una transition t, place per t, se viceversa esiste un arco che collega t a p p viene detto input si dice che p e un output place per t. Una transition e detta pozzo (sink) se ha solo archi entranti, sorgente (source) se ha solo archi uscenti. Se nella rete non sono presenti places che fungono sia a input che da output per una determinata transition (self loops) la rete viene detta pura, se ogni arco della rete ha peso unitario la rete e detta ordinaria. Da un punto di vista modellistico e possibile rappresentare condizioni ed eventi tramite places e transitions. Le precondizioni (input places) e le prostcondizioni (output places) di un evento sono rappresentate quindi da insiemi di places, mentre l'evento stesso e rappresentato da una transition. La presenza di un token in un determinato place puo essere interpretata come il vericarsi della condizione associata al place. CAPITOLO 3. MODELLAZIONE DI PIANI TRAMITE PNP 17 Una Rete di Petri modica la sua marcatura nel tempo, cos come il sistema dinamico che modellizza evolve nel tempo. La regola che determina l'evoluzione di una Rete di Petri (regola di f iring ) e la seguente: una transizione t e detta abilitata se ogni suo input place p e marcato da almeno w(p; t) token, dove w(p; t) e il peso dell'arco che collega p e . t La transition fa ring se e abilitata e l'evento ad essa associato si verica Quando una transition fa ring rimuove (consuma ) da ogni input place ( ) token, e produce in ogni output place p pi w pi ; t o ( ) token w po ; t Se una transition ha piu di un output place, i quali sono collegati ad altre transition indipendenti, si verica quanto mostrato in gura 3.4, che modella una situazione di parallelismo (concorrenza) tra gli eventi associati a t1 e t2. Se consideriamo invece la situazione di gura 3.5, in cui sia t1 che t2 siano Figura 3.4: t1 e t2 sono eventi concorrenti abilitate, notiamo che e presente una situazione di conitto. Solo una tra CAPITOLO 3. MODELLAZIONE DI PIANI TRAMITE PNP 18 1 e t2 potra infatti fare ring rimuovendo il token in p. Questa situazione t modella il meccanismo di mutua escusione. Figura 3.5: una situazione di conitto Estendendo i concetti n qui esposti e possibile ottenere un potente strumento di modellazione procedurale, idoneo alla rappresentazione di piani prodotti da un pianicatore condizionale del tipo proposto in [IOC99]. 3.2 Descrizione del comportamento di un agente robotico tramite Petri Net Plans In questo paragrafo si vuole mostrare come sia possibile modellare il comportamento di un agente robotico con architettura deliberativa tramite i Petri Net Plans (PNP), formalismo che permette la realizzazione di azioni non istantanee e concorrenti. Nell'architettura della SPQR Legged, un Petri Net Plans descrive una sequenza di azioni attivate se vericate determinate condizioni descritte nel piano. CAPITOLO 3. MODELLAZIONE DI PIANI TRAMITE PNP 19 Il concetto di azione viene modellato tramite un costrutto composto da due transition, associate agli eventi di inizio e di ne dell'azione e da un place, detto di esecuzione dell'azione, che e output place per la transition di inizio e input place per la transition di ne. Figura 3.6: costrutti di un'azione Arrivato a start.action l'esecutore di piani non fara altro che richiamare la funzione initialization() della classe in cui l'azione e denita quindi verra eseguito l'executeStep(), n quando non verra attivata la transation di che determina la ne dell'azione, ed inne verra richiamata la funzione termination(). E' ovviamente possibile creare piani piu complessi in cui azioni diverse vengono eseguite in parallelo semplicemente combinando costrutti di azioni e costrutti condizionali. Un semplice esempio di Petri Net Plan in cui vengono eseguite piu azioni in parallelo e mostrato in gura 3.7. CAPITOLO 3. MODELLAZIONE DI PIANI TRAMITE PNP Figura 3.7: un Petri Net Plan 20 Capitolo 4 Il simulatore 3D USARSim In questo capitolo viene fatta una introduzione ad USARSim, il simulatore utilizzato nel testing del modulo sviluppato. USARSim nasce alla National Science Foundation (NSF) nell'ambito del progetto Urban Search And Rescue (USAR). In UsarSim viene fedelemente riprodotto un ambiente robotico, includendo una serie di arene, di robot e la sensoristica necessaria a simulare il comportamento di un robot reale in azione. Il simulatore si basa sull'Unreal Engine, motore graco di Unreal Tournament 2004, videogioco sviluppato dalla Epic Games, cui sono demandati il rendering graco della scena tridimensionale e la simulazione delle interazioni siche tra gli oggetti. 21 CAPITOLO 4. IL SIMULATORE 3D USARSIM 22 Figura 4.1: un AIBO ERS-7 in USARSim 4.1 Architettura di USARSim L'architettura di USARSim e assimilabile a quella di un classico sistema client-server: Lato Client: Della parte client fanno parte il Controller dell'utente e l'Unreal Client, che fornisce il feedback video relativo ai punti di vista disponibili (una camera per ogni robot ed una visuale esterna); Strato di rete: Tutti i client scambiano dati col server attraverso lo strato di rete utilizzando il protocollo TCP/IP; Lato server: Come accennato, lato server la gestione della simulazio- ne e demandata all'Unreal Engine che si avvale della mappa dell'arena corrente, i dati dell'ambiente di simulazione ed i modelli utilizzati nella simulazione. CAPITOLO 4. IL SIMULATORE 3D USARSIM 23 La comunicazione con il lato client e bipartita: i dati relativi al feedback graco vengono inviati direttamente in rete ai client connessi, il dialogo con i controlli e invece gestito tramite il controllo di comunicazione Gamebots. 4.2 Unreal Engine Come accennato, il motore graco di USARSim e l'Unreal Engine rilasciato dalla Epic Games con UT2004. L'Unreal Engine e un completo sistema di sviluppo e simulazione di ambienti tridimensionali composto da: un render graco 3D, Unreal Client, in grado di fornire visuali sia in prima che in terza persona della simulazione, ideale per esigenze di debug e sviluppo; un motore per le iterazioni siche, Karma Engine che simula gravita ed iterazioni tra oggetti; un tool di authoring 3D, Unreal Editor, per la modellazione di mappe ed agenti; un linguaggio di scripting, Unreal Script, per modicare con relativa facilita il comportamento del sistema. 4.3 Il protocollo di comunicazione Il protocollo di comunicaione dell'unreal engine e proprietario; questo rende dicile l'accesso ad Unreal Tournament da applicazioni esterne. I ricercatori dell'ISI della University of Southern California hanno creato Gamebots allo CAPITOLO 4. IL SIMULATORE 3D USARSIM Figura 4.2: Architettura di USARSim 24 CAPITOLO 4. IL SIMULATORE 3D USARSIM 25 scopo di consentire la comunicazione tra l'unreal engine e le applicazioni di terze parti. La comunicazione e basata sullo scambio di dati di testo semplice, che seguono il formato TIPO fSegmento1gfSegmento2g... In cui: TIPO e una sigla scritta in maiuscolo che specica la tipologia dei dati che seguono Segmento e una lista di coppie nome/valore in cui nome e valore sono separati da uno spazio. I messaggi vengono scambiati sulla porta 3000 e devono terminare con [CR][LF]. 4.4 World Controller Durante la fase di testing di un modulo software e utile interagire con l'ambiente per aggiungere nuovi elementi o spostare il robot in nuove posizioni. E' per questo che l'ing. Marco Zaratti ha pensato di introdurre il WorldController [WEB-MZ], un bot che permette, tramite semplici comandi, di creare, muovere, animare e distruggere dinamicamente oggetti durante una simulazione. Per creare il World Controller sull'arena va inviato il comando: INIT fClassName USARBot.WorldControllerg fName WCg fLocation x,y,zg Quindi e possibile mandare comandi direttamente al World Controller nella forma: CAPITOLO 4. IL SIMULATORE 3D USARSIM 26 CONTROL fType commandTypeg... Qui sono elencati una serie di comandi frequentemente utilizzati: CONTROL fType Createg fClassName USARModels.P2DXDummyg fName P2DXg fLocation 0,0,-0.5g fRotation 0,0,0g per creare un oggetto di tipo P2DXDummy, con nome P2DX e relative posizione e rotazione; CONTROL fType Killg fName P2DXg per distruggere l'oggetto chiamato P2DX; CONTROL fType SetWPg fName nameg fSpeed sg fWP x,y,z;x,y,z;...g Per far muovere l'oggetto name, con velocita s e con un percorso che attraversa i punti specicati nei WayPoints (WP). Gli oggetti gestiti dal world controller devono avere uno script che estenda la classe WCObject e devono riferire a StaticMesh con relative primitive di collisione. 4.5 WorldControllerClient2007 Come spiegato nel capitolo 5 l'algoritmo utilizzato prevede l'approssimazione degli ostacoli a circonferenze. Si e quindi pensato di rappresentare, nel mondo del simulatore, questi ostacoli come cilindri (creati con 3D StudioMax). Data la varieta e la complessita sintattica dei comandi si e pensato di creare una semplice interfaccia al WorldController: il WorldControllerClient2007. CAPITOLO 4. IL SIMULATORE 3D USARSIM 27 Figura 4.3: Il WorldControllerClient2007 Una prima versione del WorldControllerClient e stata implementata da Mauro Sbarigia [ST-MS] ed e evoluta nel WorldController2007 con l'introduzione di comandi per la creazione, lo spostamento e la distruzione degli ostacoli. Capitolo 5 Pianicazione del moto in ambiente dinamico La problematica della pianicazione di un moto in ambiente dinamico e estremamente vasta e nel corso degli anni le soluzioni proposte sono state numerosissime (per una trattazione completa si rimanda a [FAR01]). La soluzione da me implementata prende spunto dalle pubblicazioni [FS93], [BIC95] e [BAL01]. L'idea che c'e alla base e quella di considerare ciascun ostacolo come una circonferenza avente per raggio quello della circonferenza cui e inscritto. L'algoritmo calcola una velocita per cui, arrivato in prossimita dell'ostacolo, si trova esattamente sulla circonferenza descritta. A questo punto ruotera attorno all'ostacolo seguendo la sua velocita no ad averlo superato. In caso di ostacoli sucientemente vicini da impedire una traiettoria intermendia, questi vengono \aggregati" a formare una circonferenza tale che li contenga. 28 CAPITOLO 5. PIAN. DEL MOTO IN AMBIENTE DINAMICO 29 Il cammino in uscita dal pianicatore e facilmente rappresentabile ed e costituito da sole tre curve: segmenti rettilinei; archi di circonferenza di raggio minimo a destra; archi di circonferenza di raggio minimo a sinistra. 5.1 Il paradigma delle velocita relative Il paradigma delle velocita1 relative riesce, grazie ad un algoritmo di semplice implementazione, a rilevare gli urti fra oggetti di uno stesso scenario riducendo, di fatto, il problema della pianicazione del moto in ambiente dinamico ad un problema equivalente in ambiente statico. Ipotizziamo di avere un determinato numero di ostacoli mobili in un piano di cui sono a priori note le velocita ed un oggetto mobile di cui possiamo controllare le velocita. Si ipotizzi, inoltre, che gli oggetti in questione siano assimilabili ad una circonferenza di raggio noto. Denendo le velocita di tutti gli oggetti rispetto ad un comune sistema di riferimento si puo rappresentare lo Spazio delle velocita2 (rappresentabile come in g. 5.1). Ogni oggetto viene quindi rappresentato da posizione (x (t)) e velocita (v (t)) in funzione del tempo: p p ( ) = (x (t); v (t)) p t p p Denotiamo con obj l'oggetto mobile controllabile, con obs ciascuno degli m o 1 Descritto 2 Per i in [FIO93] una denizione rigorosa dello Spazio delle velocita si rimanda a [BUR85] CAPITOLO 5. PIAN. DEL MOTO IN AMBIENTE DINAMICO 30 Figura 5.1: Spazio delle velocita ostacoli mobili. Utilizzando il concetto di spazio delle congurazioni possiamo pensare l'oggetto objo accresciuto del raggio di come un punto materiale e ciascun ostacolo objo . Per ciascuna coppia (obj o; obsi obsi ) deniamo la velocita relativa come: _ xo;i = x_ o _ con i = 1:::m xi Considerando le velocita relative si puo trasformare il problema di pianicazione dinamica in m problemi di pianicazione statica. Infatti, dato l'oggetto obsi ed objo con relative posizioni e velocita il problema della pianicazione di una traiettoria che eviti l'ostacolo si riduce ad un problema statico in cui obsi e immobile ed obj si muova con velocita assoluta x_ . Denendo ora la o traiettoria relativa trj trjo;i o:i o;i tra obj ed obs come: o i = f(x; x_ ) : (x_ (t ) = x_ o o;i ; ( ) = x )g x to o (5.1) CAPITOLO 5. allora, se x_ 31 PIAN. DEL MOTO IN AMBIENTE DINAMICO o;i non cambia, si avra una collisione tra obj e obs se: o \ trjo;i L'insieme delle velocita x_ o;i obsi i 6= ; (5.2) per cui la 5.2 e vericata costituisce il cono di collisione denito come: C Co = ftrj : trj o;i \ o;i obsi 6= ;g (5.3) Osservando la gura 5.2 si nota immediatamente che il cono di collisione Figura 5.2: Cono di collisione relativo per gli oggetti A e B ^ (posizione di obj , da ora per semplicita obj ), dalla relativo e delimitato da A o A ^ (posizione di obs , da ora obs ) ed avente raggio circonferenza centrata in B i pari alla somma dei raggi di objA e obsB B , e dalle tangenti alla circonferenza ^ Denendo la velocita relativa di rispetto ad passanti per A. ad obsB come ! velA;B = ! velA !, velB se ! termina in velA;B objA C Co rispetto =) objA CAPITOLO 5. collidera con 32 PIAN. DEL MOTO IN AMBIENTE DINAMICO obsB . Si puo inoltre denire un insieme di velocita assolute vo Figura 5.3: Cono di collisione assoluto e relativo per gli oggetti A e B che collidono con l'oggetto obsB introducendo il cono di collisione assoluto, ottenuto traslando il cono di collisione relativo del vettore !(g. 5.3). velB Il cono di collisione assoluto puo essere pensato come un'estensione dello spazio delle congurazioni nello spazio delle velocita, quindi il cono di collisione assoluto riferito all'ostacolo obsB puo essere considerato come l'immagine dell'ostacolo nello spazio delle velocita. e quindi essere rappresentato come un'ostacolo nello spazio delle velocita V O . Per quanto detto, una traiettoria i e libera da urti se valgono contemporaneamente le due condizioni: objo non si trova all'interno di un ostacolo nello spazio delle congura- zioni C O ; i il vettore v non termina all'interno del cono di collisione assoluto. o Per evitare collisioni fra l'oggetto objo ed un insieme di ostacoli obsi si de- CAPITOLO 5. PIAN. DEL MOTO IN AMBIENTE DINAMICO 33 ve considerare l'unione in senso insiemistico dei coni di collisione relativi a ciascun ostacolo. 5.2 Velocita determinata In questo paragravo viene formalizzata la velocita output del pianicatore tale che eviti l'ostacolo preso in considerazione (safevel ). Tale velocita e ricavata intersecando il cono di collisione assoluto con una circonferenza di raggio Vm ax centrata nella posizione del robot. Tale intersezione e possibile poiche, come spiegato nel precedente paragrafo, il cono di collisione assoluto puo essere considerato come l'immagine dell'ostacolo nello spazio delle velocita. Figura 5.4: Velocita che eviti l'ostacolo CAPITOLO 5. PIAN. DEL MOTO IN AMBIENTE DINAMICO 34 Ora viene formalizzata la procedura che permette di ricavare la velocita che eviti l'ostacolo. ! = ( ) la posizione del robot, = ( ) la velocita dell'o! = !+! = ( + stacolo, + ) il vertice del cono di collisione Sia P Vc xr ; yr Vo P Vo xr vx ; yr vx ; vy vy assoluto. !: Si prenda in considerazione la circonferenza con raggio 2 Vmax centrata in P (x xr )2 + (y yr )2 = V 2 max e una delle due rette che delimitano il cono di collisione assoluto. 8 > < > : x = x + kx y = y + ky o con k 0 d o con k 0 d Si prenda in considerazione il sistema 8 > > ( > < = > > > : = x xr )2 + (y x xo + kx y yo + ky yr )2 = V 2 max con k 0 d con k 0 d Dal secondo e terzo vincolo ho: x 2 y Tenendo presente che = x2 + 2kx d xo + k 2 x2 = y 2 + 2ky d yo + k2y2 o 2 o !=( Vc xo ; yo d d ) = (x + v secondo ed il terzo vincolo nel primo ho: r x; yr + v ) , sostituendo il T y CAPITOLO 5. (x PIAN. DEL MOTO IN AMBIENTE DINAMICO xr )2 + (y x2 35 yr ) 2 = 2xxr + x2r + y 2 2yyr + yr2 = x2r + vo2 + 2xr vo + k 2 x2d + 2kxd xr + 2kxd vo + x2r 2x2r yr2 + vo2 + 2yr vo + k 2 yd2 + 2kyd yr + 2kyd vo + yr2 2yr2 2vo xr 2vo yr 2kd xr + 2kd yr = 2 vx2 + 2kxd vx + k 2 x2d + vy2 + 2kyd vy + k 2 yd2 = vmax da cui: k 2 (x2 + y 2 ) + k(4v d x xd vy yd d ) + (v 2 + v 2 x y 2 vmax )=0 le cui soluzioni sono: k1;2 = 2(v x xd vy yd q ) 4v 2 (x2 + y 2 ) 2(x2 + y 2 ) max d d d (2v x yd 2v y xd )2 d andando ora a sostituire nell'equazione in una delle due rette tangenti alla circonferenza ho: 8 > < > : 8 > < > : x =x y =y x =x y =y o o o o xrx + k1 x xry + k1 y xrx + k2 x xry + k2 y d d d d L'algoritmo calcola, ovviamente, anche i punti di intersezione con l'altra tangente e restituisce la velocita che dierisce meno in angolo con il punto obiettivo. Capitolo 6 Conclusioni 6.1 Obiettivi raggiunti Dagli esperimenti condotti sul simulatore risulta evidente che il robot riesce a raggiungere la posizione desiderata evitando gli ostacoli anche se questi si muovo in formazioni particolari per cui e necessaria l'introduzione di \ostacoli virtuali" formati da aggregati degli ostacoli reali p.e. ostacoli vicini per cui lo spazio intermedio non permette il passaggio del robot. Ulteriori esperimenti hanno confermato che, con dovuti accorgimenti, l'algoritmo e robusto anche ad informazioni poco attendibili o addirittura mancanti sulla velocita degli ostacoli, come puo avvenire in ambienti reali. In queste situazioni estreme, si considerano ostacoli con raggio piu grande di quello reale, in modo che vengano create traiettorie che passino a distanze maggiori dall'ostacolo e si attuano azioni correttive che allontanino il robot dall'ostacolo, compensando l'inadabilita del tracking. Nell'ultima parte dello stage si e portato il codice sul robot; tuttavia 36 CAPITOLO 6. CONCLUSIONI 37 la mancanza di un ltro adatto a discriminare la posizione dell'ostacolo ha limitato il testing ad ostacoli ssi con posizione conosciuta. 6.2 Sviluppi futuri In vista della challenge di \Obstacle Avoidance" di Atlanta 2007, dovra essere implementato un ltro che riconosca la posizione dell'ostacolo in modo da poter applicare quest'algoritmo durante la challenge. In futuro il ltro dovra essere anato per fare un tracking ecace capace di avere informazioni complete della velocita dell'ostacolo, in modo da sfruttare appieno l'algoritmo che generera traiettorie piu ecaci. Appendice A Installazione ed utilizzo di USARSim In questo paragrafo desidero descrivere il processo di installazione di USARSim che, per quanto semplice, e soggetto di numerosi problemi. Nel server del laboratorio e conservata una copia del necessario per la corretta installazione del simulatore. Processo di installazione: 1. Installare UT2004. Da questo punto si indichera la cartella in cui e installato UT2004 con %UT2004%; 2. Installare la patch ut2004winpatch3369.exe; 3. Copiare la cartella UT2004 della copia di USARSim presente nel server sovrascrivendo la cartella %UT2004%. Il passo 3 non fa altro che aggiungere a %UT2004% i le necessari per la compilazione degli script e l'esecuzione di USARSim. 38 APPENDICE A. INSTALLAZIONE ED UTILIZZO DI USARSIM 39 Spostarsi nella cartella %UT2004%nSystem e compilare gli script di USARSim con il comando: ucc.exe make -ini=USARSim.ini A questo punto e possibile eseguire USARSim con il comando: ut2004 USAR-Soccer2007?spectatoronly=1?quickstart=true -ini=usarsim.ini dove USAR-Soccer2007 e il nome della mappa caricata. Ovviamente e possibile caricare una qualsiasi delle mappe presenti nella cartella maps. Si consiglia di abbassare al minimo la priorita del processo e tutti gli indicatori dei dettagli del videogioco ed alzare al massimo la simulazione delle leggi siche. E' possibile creare il seguente collegamento in modo da far partire USARSim in bassa piorita e con mappa USAR-Soccer2007 %windir%nsystem32ncmd.exe /c \start /low C:nUT2004nSystemnUT2004.exe USAR-Soccer2007?spectatoronly=1?quickstart=true -ini=usarsim.ini" Bibliograa [BAL01] J.Baltes, Adaptive Path Planner for Highly Dynamic Environments, 2001 [BIC95] A.Bicchi Planning Shortest Bounded-Curvature Paths for a Class of Nonholonomic Vehicles among Obstacls, 1995 [BUR85] W. Burke. Applied Dierential Geometry Cambridge University Press, 1993 [FAR01] A.Farinelli Tecniche di pianicazione delle traiettorie in ambiente dinamico [FIO93] P.Fiorini Motion Planning in Dynamic Environments Using the Relative Velocity Paradigm, 1993 [FS93] P. Fiorini, Z. Shiller. Motion planning in dynamic environments using the relative velocity paradigm. 1993 [IOC99] L.Iocchi Design and Development of Cognitive Robots Phd.Thesis [MUR89] T.Murata Petri Nets: properties, analysis and applications, 1989 40 BIBLIOGRAFIA 41 [NAR06] D.Nardi, Dispense del corso di intelligenza articiale [PET62] C.A.Petri Kommunikation mit Automaten Phd.Thesis [RN98] S.J.Russel, P.Norving. Intelligenza Articiale- un approccio moder- no, 1998 [ZAR06] M.Zaratti A 3D Simulator of Multiple Legged Robots based on USARSim, 2006 [ZIP04] V.A.Ziparo Rappresentazione ed Esecuzione di Piani Tramite Reti di Petri, 2004. [ST-FG] F.Giannone Rappresentazione e traduzione di piani Relazione di stage [ST-MS] M. Sbarigia Valutazione delle prestazioni di Sistemi Multi-Robot Relazione di stage [ST-PP] P.F.Palamara Deliberazione in ambiente multirobot Relazione di stage [WEB-4L] http://www.tzi.de/4legged/bin/view/Website/WebHome [WEB-AI] http://www.aibo.com [WEB-CH07] http://www.robocup.org/regulations/4.html [WEB-GT04] http://www.germanteam.org/GT2004.pdf [WEB-MZ] http://digilander.libero.it/window/ BIBLIOGRAFIA 42 [WEB-OSR] http://www.cs.ubc.ca/spider/mack/links/papers/osr/osr.html [WEB-RB] http://www.robucup.org