Deprecated: Assigning the return value of new by reference is deprecated in /home/pisteciclabili/aracni.de/spazzinoproject/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /home/pisteciclabili/aracni.de/spazzinoproject/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /home/pisteciclabili/aracni.de/spazzinoproject/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /home/pisteciclabili/aracni.de/spazzinoproject/wp-settings.php on line 570

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/wp-db.php on line 306

Deprecated: Assigning the return value of new by reference is deprecated in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/cache.php on line 103

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/cache.php on line 431

Deprecated: Assigning the return value of new by reference is deprecated in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/query.php on line 61

Deprecated: Assigning the return value of new by reference is deprecated in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/theme.php on line 1109

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/comment-template.php on line 0

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/class.wp-dependencies.php on line 31

Strict Standards: Redefining already defined constructor for class WP_Http in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/http.php on line 61

Deprecated: Non-static method WP_Http_ExtHTTP::test() should not be called statically, assuming $this from incompatible context in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/http.php on line 94

Deprecated: Non-static method WP_Http_Curl::test() should not be called statically, assuming $this from incompatible context in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/http.php on line 97

Deprecated: Non-static method WP_Http_ExtHTTP::test() should not be called statically, assuming $this from incompatible context in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/http.php on line 142

Deprecated: Non-static method WP_Http_Streams::test() should not be called statically, assuming $this from incompatible context in /home/pisteciclabili/aracni.de/spazzinoproject/wp-includes/http.php on line 145

Primo Spin-off: nasce Spazzino.com

July 3rd, 2008 by Alberto Sarullo

Dopo i mesi trascorsi dietro allo Spazzino Project, questa settimana ha preso vita il primo spin-off di questo progetto, Spazzino.com.

Superando i limiti imposti dall’architettura mindstorm ufficiale, è possibile espandere di molto (visione, orientamento, localizzazione) le potenzialità degli agenti basati sui lego mindstorm, e questa è stata la naturale evoluzione dei Spazzino Project.

L’altro ieri a Frontiers of Interaction IV è stato presentato al grande pubblico il successore dell’originale spazzino, che ha suscitato grande curiosità e divertimento tra gli spettatori dell’evento.

Un grazie Bruce Sterling, che ha immortalato lo spazzino (“Alberto Sarullo’s open-source Lego mashup sensor robot was the darling of the event.”), e un grazie agli organizzatori e agli sponsor dell’evento (OpenSpime, Sketchin), senza cui lo spazzino non avrebbe goduto di tale visibilità :)

Qualche link sui Lego Mindstorm

May 15th, 2008 by Alberto Sarullo

Mentre stiamo ultimando la prima stesura delle relazione, ci pare giusto dare spazio ai siti e blog dedicati ai Lego Minstorm, in maniera da dare visibilità a progetti interessanti e fornire risorse utili a chi segue il blog dello spazzino.

Prima di tutto qualche link dedicato all’hardware: oltre al sito ufficiale, segnaliamo l’ottimo mindsensor, dedicato a sensori di ogni tipo, e bricklink, che consente a privati di vendere e scambiare mattoncini.

Passiamo poi al sofware: il primo ambiente di sviluppo che abbiamo testato è stato Urbi for Minstorm, poi siamo passati ad NBC (forse troppo a basso livello per i nostri gusti) e infine ad NXC, con cui abbiamo sviluppato il programma che muove lo spazzino.

Parlando di blog, di pagina da linkare ce ne sarebbero moltissime; eccone alcune:

Minstorm distrutto - update

April 23rd, 2008 by Alberto Sarullo

Oggi siamo andati in laboratorio per fare le ultime foto e filmati da includere nelle relazione, ma abbiamo avuto una amara sorpresa: il nostro robot è stato completamente distrutto, i materiali acquistati a nostre spese gettati via senza alcun preavviso.

La prima reazione è stata di incredulità: dopo un anno che andiamo in laboratorio quasi ogni settimana, il nostro lavoro è stato azzerato in pochi istanti.

Poi è arrivato lo sconforto e il senso di ingiustizia: giusto smontare il robot se i pezzi servivano ad altri studenti, ma perchè gettare via il materiale che abbiamo acquistato a nostre spese? Avevamo lasciato apposta i nostri recapiti su alcune stazioni.

Infine, un duplice sentimento. Da un lato la rinuncia: se questo è il trattamento che l’università da agli studenti, non ha senso continuare (dopo quasi un anno per un esame da 6 crediti, vedere distrutto in questo modo il proprio progetto è la cosa più demotivante che potesse accadere).

Dall’altro la voglia di andare avanti nonostante tutto: abbiamo ordinato un Lego Mindstorm che arriverà a fine maggio, e scritto una e-mail al prof per chiedergli una spiegazione.

UPDATE 12/05: venerdì siamo andati a parlare dal prof Ornaghi, e abbiamo chiarito che all’origine della sorpresa che abbiamo avuto c’è stato un banale errore di comunicazione (non ci è stata inviata l’e-mail che avvisava dell’imminente distruzione). Continueremo a scrivere la relazione sul progetto, in attesa che tra qualche settimana ci arrivi un nuovo mindstorm.

Robot ultimato!

April 18th, 2008 by Alberto Sarullo

Con grande gioia annunciamo che il robot è praticamente ultimato.

E’ passato quasi un anno da quanto abbiamo iniziato questo progetto, e avendo dedicato allo Spazzino Project un tempo superiore a qualunque altro esame da 6 crediti, siamo estremamente soddisfatti del risultato raggiunto:

  • Il robot segue perfettamente il grafo delle sazioni, sia su archi rettilinei che curvi
  • Il robot ignora gli incroci tra gli archi del grafo, continuando a seguire l’arco corretto
  • Il robot riesce a raccogliere senza problemi le palline, portandole con sè

Per tutti coloro che seguono questo blog, abbiamo attaccato una videocamera sul robot, realizzando un breve video in soggettiva mentre eseguivamo la calibrazione fine del robot.

Il grafo

March 6th, 2008 by Alberto Sarullo

Oggi abbiamo finito di realizzare il percorso che verrà seguito dal robot. Per sottolineare la bontà del robot che abbiamo costruito, il percorso contiene alcune difficoltà:

  • Archi curvi
  • Incroci tra archi (che il robot dovrà ignorare)

E’ curioso trovarsi ad eseguire un compito opposto a quello normale: la modellazione dei sistemi di solito comporta una fase di astrazione, in cui dal reale si passa ad modello formale. Oggi invece dal modello astratto (grafo, nodi, archi) abbiamo realizzato fisicamente il percorso che seguirà il robot. Un breve ma gradito ritorno alla manualità.

Primo schizzo su carta del grafo:

Prima realizzazione dell’arco (le curve per ora sono approssimate con linee spezzate)

Nuova Interfaccia Pianificatore

February 21st, 2008 by Marco

Sviluppato il programma per coordinare le azioni del Mindstorm abbiamo deciso di modificare l’interfaccia del pianificatore così da renderla ottimale alle esigenze del nostro problema.

La sequenza di azioni restituita dal pianificatore infatti non è comprensibile al linguaggio riconosciuto dal Mindstorm e così abbiamo munito l’interfaccia php di un interprete in grado di convertire il piano in codice NXC.

Nuovo braccio per raccogliere le palline

February 4th, 2008 by Alberto Sarullo

Settimana scorsa abbiamo modificato il braccio per raccogliere le palline.

Il motivo? Una nuova idea, ovvero quella di usare il movimento del braccio per aprire la porta di ingresso del contenitore per le palline. In questo modo non sarà più la pallina entrante a dover farsi strada, aprendo la porta di ingresso con la propria inerzia, ma potrà entrare nel raccoglitore in modo molto più agevolato.

Come sempre accade quando si ha l’occasione di ricostruire qualcosa, il nuovo braccio è più leggero e resistente del precedente.

Il nuovo braccio in fase di costruzione:

Il nuovo braccio in fase di costruzione

Calibrazione del robot

January 29th, 2008 by Alberto Sarullo

Nelle ultime settimane ci stiamo dedicando alla calibrazione del robot. Lo scopo finale è riuscire a dare al robot istruzioni del tipo “avanza di 10 cm”, “ruota di 45 gradi a destra”.

Questa fase del progetto è abbastanza noiosa, perchè vanno fatte decine e decine di test, registrando tempistiche, spazi percorsi, velocità dei motori.

Per ridurre gli errori di misurazione, abbiamo usato uno spazio di 3 metri per calibrare il rapporto spazio percorso/velocità dei motori. Per misurare le distanze abbiamo usato il decametro (”si chiama Pietro”) presente nel laboratorio di via celoria.

Per quanto concerne le rotazioni, abbiamo fatto eseguire al robot 10 giri su se stesso a varie velocità, misurando i gradi tramite un goniometro portato da casa.

Terminati i test, troveremo la legge che lega i valori, e la implementeremo nel codice compilato che eseguirà l’nxt.

Da questa fase in avanti, apporteremo al robot solo piccole modifiche migliorative, senza stravolgerne la struttura.

NXC - Not eXactly C

January 17th, 2008 by Alberto Sarullo

NXC (Not eXactly C) è un linguaggio che consente di programmare l’NXT. E’ molto simile al C, ed offre una serie di comode api che stiamo usando per programmare il nostro robot.

Per chiunque volesse approfondire, segnaliamo l’ottima guida, in formato pdf, scaricabile gratuitamente al seguente indirizzo:

http://bricxcc.sourceforge.net/nbc/nxcdoc/NXC_Guide.pdf

Io e Marco mentre programmiamo nel laboratorio nel settore didattico di via Celoria:

Programmiamo nel laboratorio di via celoria

Equilibrio

December 4th, 2007 by Alberto Sarullo

Ritengo essenziale porre la dovuta attenzione al problema di equilibratura del robot: gli inevitabili contributo negativi dovuto ad attrito ed interzia possono essere ridotti al minimo distribuendo i pesi del robot in modo accorto.

Ho progettato il robot dello Spazzino project in modo tale che scarichi sulle ruote motrici gran parte del proprio peso (80% o più), lasciando il ruotino anteriore il più scarico possibile.

Si può dire che l’unica funzione del ruotino anteriore è quella di mantenere i sensori di luminosità equidistanti dal pavimento.

Per ridurre al minimo l’attrito che il ruotino anteriore ha con il pavimento quando il robot cambia direzione, ho rimosso le superfici in gomma.

Il ruotino anteriore in fase di montaggio:

Ruota anteriore