Andrea Sterbini - w3data.di.uniroma1.itw3data.di.uniroma1.it/workshop_dipartimento/Sterbini.pdf ·...
Transcript of Andrea Sterbini - w3data.di.uniroma1.itw3data.di.uniroma1.it/workshop_dipartimento/Sterbini.pdf ·...
Andrea Sterbini
LegoLab: robotica con Legoe robotica evolutiva con e-Puck
(ma prima un minuscolo intermezzo)
e-Learning adattivo e socialee-Learning adattivo e socialeSocialX: [Temperini]Learn by doing: imparare svolgendo, condividendo e
discutendo esercizi singoli e di gruppoi comportamenti didatticamente utili (fornire soluzioni,
aiutare gli altri, partecipare ...) sono premiati e rappresentati dalla “reputazione” raccolta dallo stud.
Lecomps: [Temperini, Limongelli, Fernandez]sistema e-learning con percorsi e stili didattici adattivi
basato su Learning Objectives (LO)LO = <cognitive level, concept, context>
tassonomie di concetti e contesti, livelli di Bloomlearning gaps, learning paths, (verifiche intelligenti?)
Supporto alla didatticaSupporto alla didatticaWebTeach: [Bagnoli]Wiki per la didattica + generazione di questionari
parametrici
TestSystemWeb: [Temperini]correzione automatica di esercizi C
Analisi linguistica del codice sorgenteleggibilità del codice, stili di scrittura
TiddlyWiki scientifico [Bagnoli, Jipsen]Prendere appunti in un “Wiki portatile” in Javascript
con formule, plot di funzioni e grafi interattivi
LegoLab: il corsoLegoLab: il corsoAttività complementare della laurea specialisticaAperta anche a studenti triennali in caccia di tesi
2/3: intro alla robotica con Lego NXTEsperienze in laboratorio programmando il NXT in
Java (col firmware LeJos)Navigazione odometricaControllo dell'equilibrio con PIDPlanning del movimento con mappe di occupazioneControllo behavior-basedApprendimento superv.: Line follower con rete neuraleAppr. non superv.: Q-learning per avvicinarsi ad un ostacoloMappe di Kohonen e autocategorizzazioneMonte Carlo Localization
1/3: intro alla robotica evoluzionista su e-PuckAllevare/evolvere robot neurali per compiti semplici
Legway: rimanere in equilibrioLegway: rimanere in equilibrioEmanuele Cimò: un Segway di LegoGiroscopio + Accelerometro 3D (uno solo non basta)Kalman filter per fondere le due informazioniControllore PID per regolare i motoriTelecomandato con Wiimote
Progetti d'esame (su Lego NXT)Progetti d'esame (su Lego NXT)Navigazione landmark-basedil robot cerca dei punti di riferimento e ne fa una mappa
Simulatore di robot LeJos NXTRende disponibili le stesse classi della macchina
virtuale LeJos (così il codice non va ricompilato)Simula più robot contemporaneamente
Classloader per tener separate variabili e metodi staticiNe permette il debug in Eclipse
Simulatore di reti neurali da far girare su LeJos
Prossimo obiettivo: Realizzare un simulatore per “allevare/evolvere” robot fatti di Lego
Esplorazione dell'ambiente e costruzione della mappa topologica Omnicamera: una webcam rivolta in
su verso uno specchio sferico (unapalla di Natale)
un “landmark” (punto caratteristico) individua univocamente un luogo
Fotografia lineare dell'ambiente attorno al robot ottenuta da un anello di pixel dell'immagine distorta
è un vettore (di colori) che cambia poco per piccoli spostamenti, occupa poca memoria ed è facile/veloce da confrontare con altri
Posizione di specchi catarifrangenti colorati nell'ambientesono punti colorati facili da trovare nell'immagine, compatti,
e che danno informazioni utili alla mappa (direzione e “distanza”)
Un robot con omnicamera per Un robot con omnicamera per navigazione basata su landmark navigazione basata su landmark
Intro alla robotica evolutivaIntro alla robotica evolutivaEvorobot*: un “allevamento simulato” di robot(di S. Nolfi e O. Gigliotta - LARAL, CNR)simula accuratamente robot e-puck o kheperacontrollati da una rete neurale (inizialmente casuale)“vivono” in un ambiente simulato semplificato
(2D con ostacoli semplici: cilindri, muri, altri robot)solo i “migliori” esemplari si riproducono e mutano
E' possibile svolgere esperimenti “in reale”con “veri” robot telecomandati via bluetooth
parecchi sensori: telecamera, microfono, 8 sens. di prossimità, sens. di suolo, accelerometro 3D, ...
comunicazione bluetooth
Esempio di coordinamento e Esempio di coordinamento e comunicazionecomunicazione
Obiettivo: Due robot devono scambiarsi di posto tra due zone target diversePossono “vedersi”, “parlarsi” e riconoscere la zonaFitness: quante volte si sono scambiati di postoRisultato: si “tengono d'occhio” per sapere dove andare
LegoLab: le tesi (completate)LegoLab: le tesi (completate)Giuseppe Morlino: Emergenza di meccanismi di categorizzazione astratta in agenti incarnati
[ECAL09 – Budapest]
Emanuele Cimò: Remote controlled balancing robot
Elio Chiapperini: Arbitrazione del comportamento tramite comunicazione infrarossa tra e-puck
Giovanni Colombi: Interfacciamento di una omnicamera a e-puck e comunicazione visuale
Stigmergia e formiche: comunicare Stigmergia e formiche: comunicare modificando l'ambientemodificando l'ambiente
Argomento di ispirazione naturalista: le formicheHo aggiunto ad Evorobot* la simulazione di feromoni così che:I robot possono “marcare il territorio” calpestato
e possono “fiutare” i feromoni nell'ambiente vicinoLe tracce di feromone sono additive ma svaniscono
Nota: il feromone può codificare informazioni (colore) che non svaniscono così rapidamente
Domanda: riusciamo ad allevare “formiche-robot” che trovano più cibo grazie ai feromoni?Quali comportamenti emergono?Riusciamo a “imitare” i comportamenti animali?
Schema dell'esperimentoSchema dell'esperimentoSensori: NO visione, NO comunicazione, 2 nasi e 8 s. prossimitàRete neurale: ricorrente (deve poter codificare stati diversi)Ambiente: 2 aree target (nido e cibo)Fitness: raccogliere più cibo possibileFeromoni: additivi, colorati, evaporano
Evorobot* su GPUEvorobot* su GPUle GPU delle schede grafiche (NVIDIA e ATI) sono macchine SIMD a centinaia di core sempliciEvorobot* è facile da rendere paralleloabbiamo tanti individui uguali in tanti esperimentimoltissimi dati sono condivisi tra esperimenti,
generazioni, individui, istanti di tempo diversisi simulano 10^9 “tick” (istanti) in cui Evorobot*
calcola i valori dei neuroni dei sensori del robot a seconda della sua posizione e direzione nell'ambiente
propaga i valori di attivazione nella rete neuraleaggiorna la posizione e direzione del robotaggiorna il valore di fitness
e ad ogni generazione seleziona i migliori e li fa mutareè un problema perfetto per un sistema vettoriale
Evorobot* @ HomeEvorobot* @ HomeBerkeley Open Infrastructure for Network ComputingVoluntary computingEsempi: SETI @ Home, Folding @ Home, ...
Simuliamo in genere 10*1000*100 (10^6)“vite” di individui per esperimento
Ants @ Home?Ants @ Home?
“Abbiamo cercato su dozzine di queste mattonelle diversi tipi di tracce di feromoni.”
“Se ci fosse vita intelligente lassù, ormai ne avremmo visto i messaggi.”
La prima colonia di formiche senzienti al mondo smette di cercare NOI.
“La ricerca” (da XKCD.com)
Tesi disponibiliTesi disponibiliBallbot: robot di Lego equilibrista su una pallae-puck che rilasciano “feromoni” nell'ambientevideoproiettore + sensore di luce e posizioneoppure tags RFID distribuiti al suolo
Wiimote Whiteboard: gestione dell'interazione in classe con una lavagna interattiva economica Sensore di ostacoli e precipizi a luce strutturata (proiettando griglie laser) con Wiimote e camera
(e in genere qualsiasi argomento interessante che coinvolga microcontrollori e/o Linux e/o FOSS)