L’iniziativa RoboCup: una sfida alla ricerca in Intelligenza Artificiale M. Simi A. Cisternino Pisa, 26 Marzo 1999 Che cos’è l’I.A.? Il settore dell’Intelligenza Artificiale (I.A.) consiste in un’impresa scientifica e tecnologica di lungo respiro che mira a: – costruire macchine intelligenti – formalizzare la conoscenza e meccanizzare il ragionamento – comprendere i meccanismi dell’intelligenza – innalzare il livello di interazione con le macchine Obiettivi dell’I.A. Ingegneristico: costruire artifatti intelligenti Scientifico: comprendere i meccanismi che stanno alla base del comportamento “intelligente” Che tipo di capacità? Capacità di ragionamento? Capacità di simulare il comportamento umano? Capacità di interagire in maniera razionale con un ambiente e di comunicare? Capacità di provare emozioni? Capacità di ragionamento Giocare a scacchi? Nel 1997 un computer, Deep Blue, ha battuto il campione mondiale di scacchi, Kasparov. – Fortuna? – Vantaggio psicologico? – Forza bruta piuttosto che intelligenza? Capacità di simulazione Il test di Turing (1950) Agenti Intelligenti Gli agenti sono situati – ricevono percezioni da un ambiente – agiscono sull’ambiente mediante azioni Gli agenti comunicano tra di loro – sono capaci di collaborare – sono capaci di difendersi da altri agenti Gli agenti hanno credenze, obiettivi, intezioni ... Cos’è RoboCup? La Robot World Cup Initiative (RoboCup) è la proposta di un problema di riferimento per ricerca in I.A. Si tratta di realizzare agenti (sw o hw) in grado di giocare a calcio. Un problema difficile, da usare come banco di prova per nuove idee e tecnologie. Tecnologie da sviluppare e integrare agenti autonomi collaborazione tra agenti acquisizione di strategie ragionamento e pianificazione in tempo reale robotica tecnologie hw e sw per infrastruttura La sfida procede su diversi livelli robot reali (real robot league) versione software simulata (software agent league) versione limitata ad abilità specifiche, es. tirare un calcio di rigore (special skill competion) Eventi IJCAI 97 (Giappone) MAAMAW (Parigi, giugno 98) Convegno AI*IA (Padova, settembre 98) IJCAI 99 (Stoccolma, agosto 99). Congresso AI*IA (Bologna, ottobre 98) La sfida robotica Robot di diverse dimensioni – Small Size League – Middle Size League – Legged League Small size league Medium size league Legged league Problemi specifici da risolvere Riconoscimento di immagini in tempo reale Fusione e integrazione di sensori (vista, tatto, sonar ...) Motori e batterie ad alte prestazioni Dispositivi di controllo sofisticati Comunicazione a livello hw Il problema del calcio simulato Come il gioco del calcio ma … Mondo in due dimensioni. Giocatori e palla sono cerchi. I movimenti sono simulati per passi Collisione di oggetti Il problema (cont.) I giocatori non conoscono le posizioni assolute. Punti di riferimento sul campo: bandierine, linee e porte. I giocatori si stancano Visibilità limitata Comunicazione limitata La sfida software Problema reale, ma vincolato da regole; ambiente dinamico e vincoli di tempo reale; ambiente non accessibile: – percezioni limitate dalla direzione, dalla distanza e dalla capacità di elaborazione ambiente non deterministico: – l’effetto delle azioni non è certo La sfida software (cont.) comunicazione tra giocatori limitata dalla capacità di comprendere e di utilizzare un linguaggio convenzionale; ambiente multi-agente con giocatori in diversi ruoli, alleati o avversari; utilizzabili tecniche di apprendimento, online oppure off-line, individuali o di squadra. RoboCup a Informatica Progetto del corso di Intelligenza Artificiale Laboratorio (IAL) Risultato: 10 squadre di RoboCup con giocatori programmati in Lisp Piccolo torneo (IAL-Cup 99) che ha visto la partecipazione di 6 squadre http://medialab.di.unipi.it/Project/Robocup/ Per contatti con il mondo RoboCup Pagine Web: http://www.robocup.org/ http://medialab.di.unipi.it/Project/Robocup Architettura del simulatore In una partita il server simula il mondo e 22 giocatori interagiscono col server muovendosi nell’ambiente simulato. E’ possibile avere un allenatore che segue il gioco da bordo campo. Il server calcola le percezioni per ogni giocatore e le invia. Esegue i comandi ricevuti dai giocatori. Architettura ... Coach Blu ... Server ... ... Coach Rosso Arbitro umano La rete di comunicazione Il mezzo di comunicazione è la rete Non è possibile giocare a distanza: troppa comunicazione! Si può giocare con un giocatore per computer con una rete di 23 computer. Viene utilizzato un protocollo non affidabile: percezioni e azioni possono perdersi Le percezioni Ci sono tre tipi di percezioni: see, hear e sense_body. Ogni percezione è riferita al giocatore nel suo sistema di coordinate. Le percezioni sono rappresentate da liste definite da parentesi tonde: (see 1 (ball …) …) Le percezioni visive La percezione see descrive cosa sta vedendo un giocatore. La percezione contiene una lista di oggetti caratterizzati da: tipo, direzione, distanza e velocità relative; se giocatore il numero e la squadra. Gli oggetti sono: linee, porte, giocatori, bandierine, palla ... Le percezioni uditive Segnala il fatto che qualcuno ha detto qualcosa. È il meccanismo che viene utilizzato dal simulatore per segnalare le decisioni arbitrali. Permette di ottenere meccanismi di comunicazione tra giocatori. La percezione sense_body Contiene lo stato fisico del giocatore. Permette al giocatore di conoscere di valutare le proprie forze. Implica la gestione di una risorsa limitata: la stamina. La stamina è assimilabile ad una valutazione dello stato fisico e delle energie disponibili. Le azioni Il server offre quattro azioni principali: dash, kick, turn e say. Ogni azione potrebbe essere scartata dalla rete e comunque non viene eseguita esattamente ma vengono introdotti dei correttivi non deterministici. Il giocatore non può assumere che un’azione sia andata a buon fine. I numeri Il server esegue 10 cicli per secondo di simulazione. Un match dura 6000 cicli. In un secondo il server calcola 330 percezioni e le invia ad ogni giocatore. Riceve circa 220 comandi dai giocatori. Il server in media genera in 5 minuti di partita 198000 messaggi e ne riceve in media 132000. RoboCup: l’infrastruttura Una delle sfide di RoboCup è una sfida allo sviluppo di supporti sw/hw per i tornei. Esempi: monitor 3D, commentatori automatici, arbitri automatici… Sviluppati a Pisa … – RoboMon – Championship manager RoboMon Il RoboMon è un monitor per il torneo simulato di RoboCup. È stato sviluppato presso il nostro dipartimento. È scritto in Java e VRML, non serve quindi alcun supporto oltre che un browser per poterlo usare. È un monitor sia 2D che 3D. RoboMon3D La versione 3D del monitor è piuttosto complessa. Si sono dovuti ricostruire comportamenti non disponibili come ad esempio il movimento dei giocatori. Gli strumenti standard disponibili in rete sono flessiblili ma poco efficienti.