Home    About me    Publications    Blog    Undergrad memories

Fabio Ruini's blog

'cause Italians blog better

Archivio per la 'Artificial Life and Autonomous Robotics' Categoria

Aggiornamenti video

Weekend impegnato quello appena trascorso. Dopo il primo video del mio lavoro preparato sette giorni fa, ho elaborato ora una versione più aggiornata (e montata/editata in maniera più accurata), che verra’ utilizzata dai colleghi di Dundee/Potsdam per una conferenza (ECEM 2011) in programma a Marsiglia per fine mese.

Per chi volesse dare un’occhiata al risultato finale, uploadato al solito su YouTube, ecco qui sotto l’embed.

Share

Towards a cognitive architecture for studying attention deployment

Nel caso in cui qualcuno di voi si stesse chiedendo come procede il mio lavoro, per rispondere ho realizzato un breve video dove mostro lo stato attuale dell’applicazione sulla quale sto spendendo i miei giorni. Da un punto di vista tecnico il contesto di riferimento e’ quello dell’iCub simulator sviluppato da Tikhanoff ed altri. La mia applicazione si interfaccia al simulatore tramite Yarp e mira ad implementare un’architettura cognitiva che renda in grado iCub di memorizzare/eseguire sequenze più’ o meno lunghe di istruzioni nella forma “prendi oggetto x e spostalo in posizione y”. L’ipotesi che si vuole verificare e’ se l’attention deployment, ovvero come l’attenzione (sguardo) del robot si muove durante la fase di memorizzazione, abbia un effetto sulle successive probabilità’ di riuscita del task finale (consistente nel replaying della sequenza memorizzata da parte del robot). Ancora siamo un po’ lontanucci dall’obiettivo finale (e’ poco più’ di un mese che sto lavorando full time sul progetto), ma stiamo rapidamente marciando in quella direzione.

Nel video qui sotto potete vedere le due diverse modalità in accordo alle quali i setup sperimentali sono ricreati nel simulatore (2D utilizzando uno schermo di proiezione posto di fronte al robot; 3D con un tavolo “vero e proprio” sul quale vengono appoggiati gli stimoli), la fase di creazione/pre-training delle SOMs che implementano il cuore dell’architettura cognitiva, la connessione al robot (che in automatico sposta le sue braccia in maniera tale che le mani non siano all’interno del suo campo visivo) con refresh automatico delle immagini provenienti dai suoi occhi all’interno della GUI dell’applicazione e di alcune statistiche legate ai colori percepiti, possibilità di controllo manuale di occhi/collo o pre-programmato/random lungo lo schermo/tavolo, ecc. Nel background, la parte interessante che non si vede, e’ l’apprendimento hebbiano in corso che provvede a creare link tra le diverse self-organizing maps.

PS: grazie agli sviluppatori di recordMyDesktop, che mi hanno indirettamente permesso di realizzare questo video.

Share

iCub simulator – display an image on the projection screen

Niente da fare. In questa settimana che e’ coincisa con il ritorno alla vita mio e, di conseguenza, del blog, pare proprio che gli argomenti che vadano per la maggiore siano quelli di natura squisitamente tecnica. Tema del giorno e’ il codice che permette di caricare un’immagine dal proprio computer e visualizzarla all’interno dell’iCub simulator sul pannello apposito per proiezioni. Funzione che puo’ essere molto interessante quando si lavora sull’image processing ed e’ necessario effettuare sperimentazioni di vario genere.

Bando alle ciance, dopo un po’ di smanettamenti dovuti a problemi vari di puntatori e formati che non riuscivo a far coincidere sono infine arrivato alla versione definitiva della funzione che implementa tale caratteristica del simulatore. Funzione che e’, in realta’, molto molto semplice. Diciotto righe inclusi spazi e parentesi graffe. Piu’ minimalista di cosi’ si muore.

Ed ecco qui il risultato, da uno screenshot della solita applicazione di prova sulla quale sto lavorando in questi giorni.

Share

Un nuovo Sobel filter, questa volta funzionante

Perfetto. Come avevo in qualche modo sospettato, l’implementazione del Sobel filter che avevo proposto nel post di ieri non genera esattamente i risultati attesi. Effettivamente, un processamento sull’immagine di input che appariva sensato veniva effettuato, ma mi lasciava perplesso il fatto che piu’ che edge detection sembrava che l’algoritmo lavorasse al contrario, colorando le parti all’interno dei vari contorni identificati (a mo del “colora i puntini” della Settimana Enigmista) senza evidenziare (se non indirettamente) i bordi stessi. Cancellato l’algoritmo scritto ieri, ho fatto cosi’ un nuovo tentativo basandomi sul codice pubblicato a questo link. L’algoritmo risultante ve lo propongo nello snippet che segue. L’unico problema e’ che, per poter compilare in un ambiente basato su Qt4, e’ necessario abilitare il Qt3Support module, sia con i vari include all’interno del proprio codice, sia, a fini di linkaggio, nei vari .pro/CMakeLists file utilizzati.

Questa volta i risultati sono decisamente migliori e perfettamente in linea con quanto, anche secondo Gimp, sarebbe lecito aspettarsi. Un esempio potete vederlo nell’immagine proposta qui di seguito, che mostra a sinistra uno screenshot preso dal solito iCub simulator, a destra la stessa immagine alla quale la nuova versione del filtro e’ stata applicata.

Share

iCub simulator

Tre giorni di smanettamenti di vario genere, risultati tra le altre cose nell’abbandonare il computer desktop con il quale stavo facendo i primi test data l’impossibilita’, per quelle che sono le mie conoscenze, di far funzionare ODE con una macchina il cui comparto grafico e’ affidato ad una scheda ATI Radeon. Ma infine ce l’abbiamo fatta. Il computer simulator di iCub e’ finalmente in funzione. E sembra pure funzionare piuttosto bene.

Chi volesse seguire i miei passi sappia che tutti gli strumenti software e la relativa documentazione sono liberamente disponibili sul web. Il punto da cui partire e’ sicuramente l’iCub user manual, con il relativo file readme, l’elenco delle librerie necessarie per la compilazione del simulatore, le istruzioni per procurarsi YARP ed iCub software, quelle per preparare l’ambiente e quelle per la compilazione finale. Una volta messo in moto il simulatore, a questo link si trova l’iCub Software Repository Documentation, comprensiva di un po’ di tutorial dai quali partire.

Di seguito uno screenshot del simulatore in funzione sulla mia macchina.

Nel caso in cui abbiate problemi di vario genere durante il processo, consiglio vivamente di non fare riferimento a me, quanto piuttosto alla RobotCub Hackers mailing list. Per quanto mi riguarda, mi limito a dare il mio modesto contributo alla causa postando una semplice riga di testo che, nel mio caso, ha contribuito ad installare sulla mia macchina (fresca di installazione di Ubuntu 11.04) tutte le librerie richieste per la compilazione di Yarp, ODE (flag –enable-double-precision richiesto durante la configurazione) e del simulatore.

Share

ERA architecture

Non c’e’ un gran tempo per riposare. Chiusa la maratona per la sottomissione della tesi di PhD e gia’ ora di guardare al futuro. Ovvero all’inizio, fissato precisamente per la data odierna, della mia nuova posizione da PostDoc (anche, secondo la definizione ufficiale di qui, Postdoctoral Research Fellow).

Al momento, l’idea, ancora da sgrossare e definire piu’ in dettaglio, e’ quella di creare un modello computazionale che possa replicare i risultati ottenuti da Jens Apel, Martin Fischer e colleghi in alcuni esperimenti condotti in quel di Dundee. L’articolo dove questi risultati sono pubblicati e’ ancora under revision, quindi non posso pubblicare qui la bozza che e’ in mio possesso. A grandi linee, ad ogni modo, nello studio in questione soggetti umani vengono analizzati in relazione a come si muove il loro sguardo durante la memorizzazione (e successiva esecuzione) di complesse sequenze di istruzioni (nella forma “prendi oggetto x e disponilo in una griglia nella cella numero y”). Quello che e’ stato notato e’ che lo sguardo dei partecipanti tende ad evidenziare effetti come quello di “rehearsal”, che pero’ scompaiono quando la lunghezza delle istruzioni supera una certa lunghezza (piu’ o meno compatibilmente con le capacita’ di memorizzazione a breve termine dei soggetti esaminati). Inoltre, certi pattern osservati durante la memorizzazione delle istruzioni sembrano condurre ad esecuzioni piu’ accurate di altre, rendendo cosi’ possibile prevedere, semplicemente osservando il movimento oculare dei soggetti coinvolti, la buona riuscita o meno della fase esecutiva del task.

Per quello che riguarda noi semplici computeristi, l’idea e’ di utilizzare il nostro fido robot iCub ed il suo ancor piu’ fido simulatore nel tentativo di creare un modello che catturi e riproduca le caratteristiche salienti del fenomeno in esame. Per farlo ci si appoggera’, almeno inizialmente, all’architettura ERA (Epigenetic Robotics Architecture) elaborata da Tony Morse durante il suo PhD. ed ancora in via di perfezionamento. Si tratta di un’architettura che prevede l’utilizzo di varie self-organising maps accorpate in una sorta di struttura unica. L’interazione tra le SOM porta alla generazione di fenomeni di vario genere ed ha permesso all’architettura ERA di essere gia’ applicata ad un ventaglio relativamente ampio di task.

Nel caso voleste approfondire ulteriormente la questione, vi lascio con due articoli. Il primo di questi articoli descrive l’architettura ERA in dettagli, con una buonissima contestualizzazione in riferimento alla storia dell’AI. Il secondo e’ invece un paper, scritto in collaborazione con Linda B. Smith, dove ERA e’ applicata (con successo) alla riproduzione sull’iCub dell’A-not-B error tipicamente osservato nei bambini durante una particolare fase dello sviluppo.

Share

The other half of the embodied mind

Google Alerts, sempre pronto ad avvisarmi non appena una qualche mia pubblicazione scientifica viene citata, mi informa oggi in merito all’apparizione on line di un nuovo articolo scritto da Domenico Parisi e pubblicato su Frontiers in Cognition, dal titolo The other half of the embodied mind.

Per chi volesse dare un’occhiata piu’ da vicino al paper, liberamente accessibile seguendo il link pubblicato al paragrafo precedente, propongo qui di seguito l’abstract:

Embodied theories of mind tend to be theories of the cognitive half of the mind and to ignore its emotional half while a complete theory of the mind should account for both halves. Robots are a new way of expressing theories of the mind which are less ambiguous and more capable to generate specific and non-controversial predictions than verbally expressed theories. We outline a simple robotic model of emotional states as states of a sub-part of the neural network controlling the robot’s behavior which has specific properties and which allows the robot to make faster and more correct motivational decisions, and we describe possible extensions of the model to account for social emotional states and for the expression of emotions that, unlike those of current “emotional” robots, are really “felt” by the robot in that they play a well-identified functional role in the robot’s behavior.

Share

TurtleBot: a new (big) Khepera?

I ragazzi di Willow Garage (gli stessi della libreria PCL, Point Cloud Library) hanno appena rilasciato una nuova piattaforma robotica dedicata al settore educational/research che sembra decisamente simpatica. Si tratta di TurtleBot, un wheeled robot dalla forma dello chassis a torretta che tra le sue peculiarita’ ha quella di trasportare a bordo un Kinect (soluzione gia’ adottata da diversi gruppi di ricerca per l’implementazione di algoritmi di SLAM, vedi ad esempio qui).

Il resto dell’hardware si basa sulla linea Create di iRobot ed un’unita’ di calcolo piuttosto potente basata su un processore (seppur Atom) dual core ed un processore grafico di NVIDIA per l’elaborazione delle immagini. Per quanto riguarda invece il software, insieme al robot viene fornito l’SDK di ROS, il quale permette di andare a lavorare su moltissimi aspetti interessanti.

Su YouTube (nonche’ qui di seguito) e’ gia’ possibile trovare un breve video dimostrativo del TurtleBot in azione.

Secondo quanto dice Physorg.com nel suo report, il robot, nella sua versione “fully loaded” dovrebbe avere un costo relativamente contenuto, attorno ai $1,200. Rendendosi cosi’ davvero molto interessante per il mercato dell’educazione e della ricerca.

Aggiornamenti sull’argomento saranno sicuramente rilasciati sul blog di Willow Garage.

Share

Evolutionary Robotics – a tutorial

Mentre perlustravo il web nella ormai solita (annosa?) ricerca di informazioni da incorporare all’interno della mia (neverending?) tesi di PhD, ho trovato un bel tutorial sulla Robotica Evolutiva a cura di Dario Floreano e Stefano Nolfi (i.e., coloro universalmente riconosciuti come i “padri”, se non fondatori almeno morali, della disciplina).

La notizia ovviamente non sta tanto nell’aver trovato un tutorial in PowerPoint (diciamo che di materiale a riguardo ne ho giusto qualche tonnellata), quanto nel modo in accordo al quale questo era distribuito. Ho infatti scoperto slidefinder.net, un sito estremamente gradevole che provvede a rendere fruibili slideshow (presumo di vari formati per quanto non ho ancora avuto modo di approfondire particolarmente a riguardo) ed anche di accedere in real time alle eventuali note collegate alle singole slide semplicemente passando con il cursore del mouse sopra a loro. Cosi’ come ho fatto qui sotto, gli slideshow possono anche essere embeddati all’interno di qualunque altra pagina web, per quanto si perda in questo modo l’effetto scenico (nonche’ informativo) appena accennato.

Non per questo le slide appaiono pero’ male, anzi. Guardate un po’ qui!

floreano.ppt
Share

Alan Turing on “the Theological Objection”

Sempre alle prese con letture di vario genere per la mia tesi, oggi pomeriggio ho sfogliato il testo originale di Computing Machinery and Intelligence, uno dei masterpiece di Alan Turing pubblicato nel 1950 ed apripista del cosiddetto “Turing test”. L’articolo e’ strutturato in maniera abbastanza particolare, con una parte iniziale dove viene introdotto il celebre “imitation game” che poi diventera’ appunto il test di Turing, seguito da lunghe pagine dove il matematico inglese risponde in anticipo a quelle che sono le critiche piu’ comuni che pensa il suo lavoro ricevera’. Tra queste non manca una riflessione sulla “Theological Objection”. Scritta in maniera semplice, elegante ed in maniera tale da lasciare poco, se non nessuno, spazio a repliche di qualsivoglia natura.

Thinking is a function of man’s immortal soul. God has given us an immortal soul to every man and woman, but not to any other animal or to machines. Hence no animal or machine can think.

I am unable to accept any part of this, but will attempt to reply in theological terms. I should find the argument more convincing if animals were classed with men, for there is a greater difference, to my mind, between the typical animate and the inanimate than there is between man and the other animals. The arbitrary character of the orthodox view becomes clearer if we consider how it might appear to a member of some other religious community. How do Christians regard the Moslem view that women have no souls? But let us leave this point aside and return to the main argument. It appears to me that the argument quoted above implies a serious restriction of the omnipotence of the Almighty. It is admitted that there are certain things that He cannot do such as confer a soul on an elephant if He sees fit? We might expect that He would only exercise this power in conjunction with a mutation which provided the elephant with an appropriately improved brain to minister to the needs of this sort. An argument of exactly similar form may be made for the case of machines. It may seem different because it is more difficult to “swallow.” But this really only means that we think it would be less likely that He would consider the circumstances suitable for conferring a soul. The circumstances in question are discussed in the rest of this paper. In attempting to construct such machines we should not be irreverently usurping His power of creating souls, any more than we are in the procreation of children: rathere we are, in either case, instruments of His will providing mansions for the souls that He creates.

However, this is mere speculation. I am not very impressed with theological arguments whatever they may be used to support. Such arguments have often been found unsatisfactory in the past. In the time of Galileo it was argued that the texts, “And the sun stood still … and hasted not to go down about a whole day” (Joshua x. 13) and “He laid the foundations of the earth, that it should not move at any time” (Psalm cv. 5) were an adequate refutation of the Copernican theory. With our present knowledge such an argument appears futile. When that knowledge was not available it made a quite different impression.

Share

« Pagina precedentePagina successiva »