slides

Transcript

slides
Andrea Sterbini
LegoLab: robotica con Lego
e robotica evolutiva con e-Puck
(ma prima un minuscolo intermezzo)
e-Learning adattivo e sociale
SocialX:
[Temperini]
Learn by doing: imparare svolgendo, condividendo e
discutendo esercizi singoli e di gruppo
i 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 Bloom
learning gaps, learning paths, (verifiche intelligenti?)
Supporto alla didattica
WebTeach:
[Bagnoli]
Wiki per la didattica + generazione di questionari
parametrici
TestSystemWeb:
[Temperini]
correzione automatica di esercizi C
Analisi linguistica del codice sorgente
leggibilità 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 corso
Attività complementare della laurea specialistica
Aperta anche a studenti triennali in caccia di tesi
2/3: intro alla robotica con Lego NXT
Esperienze in laboratorio programmando il NXT in
Java (col firmware LeJos)
Navigazione odometrica
Controllo dell'equilibrio con PID
Planning del movimento con mappe di occupazione
Controllo behavior-based
Apprendimento superv.: Line follower con rete neurale
Appr. non superv.: Q-learning per avvicinarsi ad un ostacolo
Mappe di Kohonen e autocategorizzazione
Monte Carlo Localization
1/3: intro alla robotica evoluzionista su e-Puck
Allevare/evolvere robot neurali per compiti semplici
Legway: rimanere in equilibrio
Emanuele Cimò: un Segway di Lego
Giroscopio + Accelerometro 3D (uno solo non basta)
Kalman filter per fondere le due informazioni
Controllore PID per regolare i motori
Telecomandato con Wiimote
Progetti d'esame (su Lego NXT)
Navigazione landmark-based
il robot cerca dei punti di riferimento e ne fa una mappa
Simulatore di robot LeJos NXT
Rende 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 statici
Ne 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
Un robot con omnicamera per
navigazione basata su landmark
Esplorazione dell'ambiente e
costruzione della mappa topologica
Omnicamera: una webcam rivolta in
su verso uno specchio sferico (una
palla 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'ambiente
sono punti colorati facili da trovare nell'immagine, compatti,
e che danno informazioni utili alla mappa (direzione e “distanza”)
Intro alla robotica evolutiva
Evorobot*: un “allevamento simulato” di robot
(di S. Nolfi e O. Gigliotta - LARAL, CNR)
simula accuratamente robot e-puck o khepera
controllati 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
comunicazione
Obiettivo: Due robot devono scambiarsi di posto
tra due zone target diverse
Possono “vedersi”, “parlarsi” e riconoscere la zona
Fitness: quante volte si sono scambiati di posto
Risultato: si “tengono d'occhio” per sapere dove andare
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
modificando l'ambiente
Argomento di ispirazione naturalista: le formiche
Ho aggiunto ad Evorobot* la simulazione di
feromoni così che:
I robot possono “marcare il territorio” calpestato
e possono “fiutare” i feromoni nell'ambiente vicino
Le tracce di feromone sono additive ma svaniscono
Nota: il feromone può codificare informazioni (colore)
che non svaniscono così rapidamente
Domanda: riusciamo ad allevare “formicherobot” che trovano più cibo grazie ai feromoni?
Quali comportamenti emergono?
Riusciamo a “imitare” i comportamenti animali?
Schema dell'esperimento
Sensori: 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 possibile
Feromoni: additivi,
colorati, evaporano
Evorobot* su GPU
le GPU delle schede grafiche (NVIDIA e ATI)
sono macchine SIMD a centinaia di core semplici
Evorobot* è facile da rendere parallelo
abbiamo tanti individui uguali in tanti esperimenti
moltissimi dati sono condivisi tra esperimenti,
generazioni, individui, istanti di tempo diversi
si 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 neurale
aggiorna la posizione e direzione del robot
aggiorna il valore di fitness
e ad ogni generazione seleziona i migliori e li fa mutare
è un problema perfetto per un sistema vettoriale
Evorobot* @ Home
Berkeley Open Infrastructure
for Network Computing
Voluntary computing
Esempi: SETI @ Home, Folding @ Home, ...
Simuliamo in genere 10*1000*100 (10^6)
“vite” di individui per esperimento
Ants @ Home?
“Abbiamo cercato “La ricerca” (da XKCD.com)
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.
Tesi disponibili
Ballbot: robot di Lego equilibrista su una palla
e-puck che rilasciano “feromoni” nell'ambiente
videoproiettore + sensore di luce e posizione
oppure 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)