Andrea Sterbini - w3data.di.uniroma1.itw3data.di.uniroma1.it/workshop_dipartimento/Sterbini.pdf ·...

Post on 16-Feb-2019

220 views 0 download

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)