Home    About me    Publications    Blog    Photo gallery
Some other old good stuff

Fabio Ruini’s blog

Because Italians do it better! What the f**k? Ehm… the blogs, I mean… obviously! :-/

Archivio per la 'UAV, UCAV and MAV' Categoria

Ups…

Quasi dimenticavo. Dopo un weekend di fuoco, domenica pomeriggio (naturalmente l’ultimo giorno utile) sono riuscito a sottomettere il mio paper per WCCI 2010.

Cat fallen asleep on a computer keyboard

Avendo dormito praticamente nulla durante gli ultimi giorni prima della consegna non posso garantire la perfezione dell’articolo, ne’ da un punto di vista tecnico, ne’ tantomeno linguistico. Ma d’altronde l’idea dietro una bozza e’ che non si tratti di una versione perfetta, no? Va beh, bando alle ciance. I piu’ curiosi, intrepidi e temerari di voi lettori possono scaricare il frutto dei miei sforzi direttamente dal link qui sotto.

Nel frattempo ho anche provveduto ad aggiornare l’area Publications del sito, nonche’ la versione web del mio CV, che potete trovare dispersa all’interno di un’altra sezione, piu’ precisamente About me.

PS: se qualcuno avesse la benche’ minima idea di come convincere il mio compilatore LaTeX a non mettere quelle due orribili figure in ultima pagina a meta’ della sezione Acknowledgment, ma bensi’ tutte dentro ad Appendix, sappia fin d’ora che un giorno avra’ un caffe’ pagato…

iPad, sFly e LaTeX

Diverse cose di cui parlare, oggi. Innanzitutto questa e’ stata la giornata della nuova creatura di Apple. Il famoso tablet del quale ormai tutti parlavano e di cui ormai quasi tutto si sapeva e’ stato finalmente annunciato. Confermati i principali rumors che si sono diffusi a macchia d’olio negli ultimi giorni: schermo da 9.7 pollici interamente multi-touch, possibilita’ di scaricare e-books, giornali e riviste da una nuova apposita sezione dell’iTunes store, batteria a lunghissima durata (dichiarate 10 ore di uso intensivo ininterrotto ed un mese di standby). L’iPad sara’ disponibile in una doppia versione WiFi/WiFi+3G, con quest’ultima dotata di GPS, con tagli da 16, 32 o 64GB di memoria.

Apple iPad: front and back view

Il dispositivo e’ essenzialmente un gadget, su questo non ci piove. Soprattutto per il fatto che la limitata memoria e la necessita’ di essere sincronizzato via iTunes gli impediscono di essere un media-centre collegabili, wireless o via cavo, ad altri apparati della casa come stereo o televisioni/proiettori. Ma devo ammettere che l’iPad riscontra comunque appieno il mio gradimento. Appurato infatti quello che e’ il mio tipico uso del laptop in ambito domestico, ovvero controllare le email, pianificare cose e navigare allegramente per la rete, un tablet come questo, grande il giusto, veloce ed elegante, me lo gusterei appieno. Anche in viaggio l’iPad puo’ avere il suo perche’, soprattutto per via degli imminenti Keynote e Pages e la possibilita’ di collegarlo ad un’uscita VGA/DVI. Per quanto condivida i problemi classici dei netbook: se devo viaggiare necessariamente con una borsa, perche’ non mettere al suo interno un laptop completo piuttosto che un suo surrogato? Detto cio’, una possibilita’ che ritengo potenzialmente molto interessante e sulla quale il keynote di Jobs e soci non si e’ soffermata e’ l’utilizzo dell’iPad all’interno di un autovettura. Nella versione 3G il dispositivo e’ provvisto di GPS. Sarebbe quindi possibile agganciarlo al cruscotto e farlo diventare il cuore tecnologico dell’automobile, passando la musica/podcast all’autoradio via Bluetooth/cavo e sfruttando i quasi 10 pollici di schermo per funzioni di navigazione assistita. Arricchendo al tempo stesso l’estetica dell’automobile con qualcosa di molto piu’ elegante che non i classici navigatori appiccicati con una ventosa al vetro e con cavi sparpagliati ovunque. Vedremo un po’ cosa i produttori di terze parti saranno in grado di offrirci.

Saltando di palo in frasca, il mio supervisor (piu’ impegnato del sottoscritto nel ricercarmi un post-doc) (cosa che forse dovrebbe farmi riflettere) (o piu’ presumibilmente farmi preoccupare) mi ha segnalato via e-mail un progetto recentemente lanciato e chiamato sFly (Swarm of Micro Flying Robots). Una descrizione abbastanza dettagliata del progetto (copia/incollata dall’apposita pagina del wiki ufficiale) potete trovarla qui di seguito:

Autonomous micro helicopters are about to play major roles in tasks like reconnaissance for search and rescue, environment monitoring, security surveillance, inspection, law enforcement, etc. The ability to fly allows easily avoiding obstacles on the ground and to have an excellent bird’s eye view. Therefore flying robots are the logical heir of ground based mobile robots. Their navigational and hovering advantages make them the ideal platform for exploration, mapping and monitoring tasks. If they are further realized in small scale, they can also be used in narrow out- and indoor environment and they represent only a limited risk for the environment and people living in it. However, for such operations today’s systems navigating on GPS information only are not sufficient any more. Fully autonomous operation in cities or other dense environments requires the micro helicopter to fly at low altitude or indoors where GPS signals are often shadowed and to actively explore unknown environments while avoiding collisions and creating maps. This involves a number of challenges on all levels of helicopter design, perception, actuation, control, navigation and power supply that have yet to be solved. Our S&T endeavor proposed in this project will therefore focus on micro helicopter design, visual 3D mapping and navigation, low power communication including range estimation and multi-robot control under environmental constraints. It shall lead to novel micro flying robots that are:

  • Inherently safe due to very low weight (< 500g) and appropriate propeller design;
  • capable of vision-based fully autonomous navigation and mapping;
  • capable of coordinated flight in small swarms in constrained and dense environments.

Il sito non e’ particolarmente ricco di informazioni e non si trovano al suo interno pubblicazioni di alcun tipo. Ci sono comunque alcuni filmati che mostrano in azione uno dei prototipi sviluppati dal consorzio che sta portando avanti il progetto. Uno di questi lo includo in questo post. Gli altri potete trovarli agevolmente sul canale YouTube di sFly. Vi aggiornero’ appena riusciro’ a recuperare qualche informazione piu’ approfondita sul lavoro che stanno portando avanti.

In conclusione, sarete forse (o forse no) contenti di sapere che ho finalmente risolto i miei problemi riguardanti l’inclusione di bibliografia (importata da file .bib) in documenti LaTeX. I tutorial ai quali stavo facendo riferimento mi davano in sostanza informazioni sbagliate. Pare che se si voglia includere un file .bib non ci sia da fare altro che utilizzare il tag \bibliography{nomefilebib} ed associarci poi uno stile con \bibliographystyle{nomestile}. Niente bisogno dei vari \begin{thebibliography}{99} eccetera, in sostanza. Il ringraziamento per avermi fatto luce sulla questione va principalmente a questo ottimo documento.

LaTeX su Mac OS X (e qualche papers)

Visto che tra un po’ dovro’ iniziare l’avventura tesi e’ giunta l’ora che le mie competenze in campo informatico/scientifico facciano un ulteriore passettino in avanti. Per il prossimo paper (deadline, che spero di cuore sara’ estesa, il 31 di gennaio – destinazione la special session in “Neural Modeling Fields: foundations and applications” del World Congress on Computational Intelligence di Barcellona) ho dunque deciso di fare il grande passo e darmi definitivamente a LaTeX.

MacTex logo

Lavorando su Mac, la scelta del parco software da utilizzare e’ stata pressoche’ automatica: MacTex-2009. MacTex e’ un pacchetto al’interno del quale troviamo un po’ di tutto: si va dal famoso BibDesk (reference manager), a LaTeXiT (un front-end per scrivere equazioni in LaTeX e che permette di esportare in numerosi formati), passando per Texshop (editor con funzioni di compilazione e visualizzazione) ed Excalibur (versatile spell-checker). Grazie anche all’intervento del buon Ale sono riuscito nel giro di pochi minuti a caricare la document class redatta dagli organizzatori della conferenza, apportare alcune modifiche e (previa aggiunta, nel preambolo, del package epstopdf) compilare il tutto allegramente.

Va da se’ che uno degli aspetti piu’ arrapanti dell’utilizzare LaTeX consiste non soltanto nel non doversi preoccupare (o quantomeno farlo solo in maniera marginale) del layout grafico dei documenti che si produce, ma anche nel poter inserire e gestire in maniera piu’ che agevole references, citazioni e quant’altro. In teoria. Nella realta’ sto avendo qualche difficolta’. Dopo averla opportunamente aggiustata, ho esportato da Papers la mia bibliografia in comodo formato .bib. BibDesk legge ed interpreta bene il file cosi’ creato, nonostante qualche lamentela riguardo ai files linkati in locale. Dare la bibliografia in pasto a TexShop, tuttavia, non e’ cosi’ semplice. Seguendo alcuni tutorial trovati sul web (ad esempio questo) non sono ancora riuscito a venire a capo della questione. Vi terro’ comunque aggiornati sugli sviluppi. Nel frattempo, gia’ il riuscire vedere sullo schermo del proprio computer qualcosa come cio’ che c’e’ qui sotto e’ per me motivo di vanto.

Screen shot of my Macbook Air running MacTex 2009 on Snow Leopard

In chiusura di post ne approfitto per segnalare alcuni articoli (due relativi agli UAVs ed uno di robotica piu’ generale) nei quali mi sono imbattuto oggi. Tutti e tre sono relativamente datati, ma non per questo meno interessanti. Passo e chiudo.

Parrot AR.Drone

Figurarsi se, appena ripreso il lavoro, non spuntava subito da un qualche feed RSS quello che sara’ il mio nuovo oggetto del desiderio per le settimane a venire. L’imbeccata arriva, un po’ a sorpresa, da Macitynet. Il nome dell’oggetto in questione, invece, e’ Parrot AR.Drone

Parrot AR.drone landing on a platform

Le specifiche dell’aggeggio sono riassunte a questo link. Per sintetizzare ulteriormente, si tratta di un piccolo (45 x 30cm e 360g di peso) quadri-rotore realizzato in un mix di plastica e fibra di carbonio, che trasporta nel suo corpo un semplice computer (ARM9 a 32 bit con 468MHz di frequenza di clock, 128MByte di RAM, interfaccia Wi-Fi ed uno slot USB disponibile per futuri aggiornamenti), due telecamere (una frontale in grado di broadcastare le immagini raccolte, un’altra nella parte bassa dell’elicottero e che si occupa di mantenerlo stabile in associazione con la IGS/MEMS), un altimetro ad ultrasuoni ed infine tripli accelerometro e giroscopio (i quali implementano di fatto la IMU del velivolo). Per il volo outdoor, al quadri-rotore puo’ essere aggiunta una sorta di involucro protettivo, che lo rende leggermente piu’ pesante, ma al tempo stesso potenzialmente meno pericoloso in quanto i propellers vengono in questo modo coperti.

Parrot AR.Drone (details of the front camera)

Il focus di coloro che hanno creato l’home page del Parrot AR.Drone e’ imperniato sugli aspetti ludici. In particolare la possibilita’ di creare videogames in realta’ aumentata, in grado di girare su piattaforme quali l’iPhone e l’iPod Touch. L’idea e’ senz’altro interessante, ma altrettanto interessante sarebbe provare ad utilizzare questa piattaforma robotica (ed in particolare le sue API, che pare stiano per essere modificate con la creazione di una parte C comune) per scopi un po’ piu’ seri. Un po’ di documentazione per sviluppatori e’ gia’ on line. A mancarmi, al momento, sono piuttosto gli €800 richiesti per acquistare un prototipo (unitamente al “supporto” del team ufficiale di sviluppo), che magari potrei provare a reperire in universita’.

Chiudo il post lasciandovi con un video dell’AR.Drone in azione.

Non male, eh?

Varie grafiche per Mac OS X e ultimo video sui miei MAVs

Nonostante oggi si concluda, ufficialmente, il mio 2009 lavorativo (domenica si parte alla volta dell’Italia, con il solito obiettivo di rientrare a Plymouth in gennaio piu’ grasso di almeno un paio di chili), continuo nella tradizione degli ultimi post e ancora una volta “parlo” (termine un po’ pomposo) di qualcosa legato al mondo Mac o comunque dell’informatica in generale.

Prima di tutto l’ennesimo “trucchetto” nel quale mi sono imbattuto e che consente di cambiare il formato delle immagini create da Mac OS X tramite la funzione integrata di cattura screenshot (leggasi cmd+shift+4). Di default, il Leopardo salva il tutto in PNG. La compressione pero’ e’ un po’ strana e distribuire file creati in quel modo puo’ risultare talvolta problematico. No worries. In questo articolo e’ spiegato come rimediare impostando un altro formato di default a piacimento.

Mac OS X, purtroppo e come ovvio, non puo’ catturare screenshot in formato EPS. Ma siccome questo e’ un formato grafico che ho scoperto da poco e che sto letteralmente iniziando ad adorare, oggi sono andato anche alla ricerca di un plug-in che mi permettesse di visualizzare le anteprime di file di questo tipo senza doverli prima renderizzare via Preview o simili. La scelta e’ infine caduta su EPSQuickLookPlugIn, prodotto free (donazioni comunque gradite) della Eternal Storms Software. Installazione semplicissima (giusto un drag&drop) e funzionamento smooth. Meglio di cosi’ non si potrebbe desiderare.

Infine, sul fronte lavorativo, ho preparato un nuovo filmato dei miei aeroplanini nell’ultimo setup sperimentale elaborato. Abbiamo MAVs in grado di muoversi all’interno di un ambiente 3D sfruttando tutte le rotazioni possibili (leggasi yaw, pitch e roll) ed un target che, se si accorge di un aereo entro una certa distanza, cerca di muoversi per scappare da esso.

Cosi’ come avevo visto nel caso del simulatore 2D, ancora una volta emerge il fatto (invero abbastanza ovvio) che al crescere della velocita’ del target diminuisce l’accuratezza dei MAVs. I grafici qui di seguito mostrano le performance ottenute dai migliori individui di ogni generazione (media di 20 seeds), rispettivamente nel caso di una semplice architettura feed-forward input-output, sia con l’aggiunta di uno strato intermedio di 10 hidden.

Success rate for the best individuals in the 3D simulation (yaw/pitch/roll) using the basic input-output neural architecture

Success rate for the best individuals in the 3D simulation (yaw/pitch/roll) using a neural network controller with a hidden layer

Nel filmato qui sotto, messo insieme con il solito iMovie e poi direttamente trasferito su YouTube, si vede il comportamento di un po’ di aerei evoluti con target che viaggiano ad un terzo della loro velocita’.

Paper per WIVACE 2009, analisi sul multi-threading ed altre rogne con Snow Leopard

Chi aveva detto che non si puo’ scrivere un paper in due giorni? A quanto pare e’ possibile. Magari la qualita’ non sara’ il massimo, l’attenzione dei dettagli non maniacale come al solito, pero’ si puo’ fare. Ed infatti e’ quello che ho fatto. Con una bella lavorata durata l’intero weekend, ho prodotto l’articolo poi approvato dal mio supervisor ed inviato agli organizzatori di WIVACE 2009.

Just in time (to wait)

Il draft del paper (che nei prossimi giorni sara’ referato, valutato ed eventualmente accettato) (ipotesi, quest’ultima, che se e’ vero quanto dice EasyChair, ovvero che a ieri sera il mio era soltanto il 12esimo paper sottomesso, direi sia abbastanza probabile) potete trovarlo qui sotto. Una volta tanto e’ in italiano, quindi non avete scuse.

Nell’articolo parlo bene o male delle solite cose che gia’ conoscete (e se cosi’ non fosse, alla sezione Publications c’e’ comunque tutto quello che vi serve). L’elemento di novita’ e’ costituito da un’analisi degli effetti apportati al mio simulatore dall’introduzione di metodologie di programmazione multi-threading. La tabella qui sotto, piu’ ricca rispetto a quella pubblicata nel paper, elenca i tempi di esecuzione (in msec) di una delle mie simulazioni in diverse configurazioni (single e multi-thread sul mio MacPro (MP) Quad-Core, single e multi-thread su uno dei nodi di P-ARTS (XS), con doppio Quad-Core).

Seed MP-ST XS-ST MP-MT XS-MT
0 115,959 116,370 34,818 27,943
1 154,174 154,548 70,539 15,467
2 155,169 155,705 38,774 32,041
3 148,620 149,216 43,214 34,274
4 155,831 159,446 75,149 21,021
5 211,174 212,136 44,934 24,225
6 165,884 166,569 61,842 45,306
7 216,879 217,586 52,754 38,534
8 69,081 69,417 25,706 18,206
9 102,108 102,555 36,730 20,634
AVG 149,487.9 150,354.8 48,446 27,765.1

Table Tutorial

Quello che emerge e’ innanzitutto che il passaggio ad una programmazione parallela porta dei vantaggi significativi in termini di velocita’ di esecuzione del codice. Vantaggi, nel caso del nodo di P-ARTS utilizzato, sono nell’ordine del +440%. Un “buon” valore, ma comunque decisamente inferiore rispetto al +700% che, in linea teorica, sarebbe stato lecito attendersi nel passaggio da un software eseguito su un singolo thread ad uno in grado di elaborarne 8 in contemporanea. Quella che era una mia impressione, ovvero che le simulazioni girassero piu’ velocemente sulla mia macchina desktop che non sui nodi del cluster, si e’ rivelata semplicemente sbagliata. Bene cosi’.

Chiusa la parentesi relativa al paper ed al multi-threading, a voi le ennesime sul fronte Snow Leopard. Pure Cyberduck, il popolare client FTP, SFTP, e quant’altro, nella sua ultima versione stabile (la 3.2.1) semplicemente non funziona. Per rimediare al problema, gli sviluppatori hanno rilasciato una beta della nuova versione 3.3 che se non altro ha l’accortezza di avviarsi. Problemi anche con le Qt. Diversi progetti paiono non compilarsi (compreso uno che ho creato in serata per testare un po’ QtCreator), per via di un errore che recita: /Library/Frameworks/QtGui.framework/Headers/qregion.h:158: error: ‘toQDRgn’ was not declared in this scope. Se si utilizza qmake, la soluzione, come spiegato qui, e’ quella di aggiungere al file di progetto la riga CONFIG += x86. Mentre un altro problema, questa volta di carattere piu’ generale e non relativo a Snow Leopard quanto piuttosto alle Qt nel loro insieme e’ descritto a quest’altro link. In sostanza, se aggiungete la macro Q_OBJECT ad una vostra classe ed il software, come per magia, smette di compilarsi restituendo errori di linkaggio vari ed assortiti, quello che dovete fare e’ chiudere il vostro IDE, ripulire tutti i files pre-compilati (con un make clean o eventualmente a mano), ricreare il progetto e ricompilare tutto da capo. Ora dovrebbe funzionare. Soliti misteri della fede.

QtConcurrent, forse ci siamo

Che sia la volta buona? Grazie all’aiuto di un odiosissimo membro del Qt Centre Forum, tale wysota, con il quale ho interagito pomeriggio e sera (e che mi ha fatto cambiare il codice che avevo scritto senza spiegarmi il perche’…) ora l’engine evolutivo per i miei MAVs dovrebbe essere finalmente un vero e proprio software multi-threading. Il primo test condotto su uno degli Xserve di P-ARTS ha prodotto risultati direi promettenti.

Road sign - Parallel visitor parking only

Qui di seguito un estratto del codice che implementa il tutto. Per chi fosse interessato nel capire come si sia arrivati a questo punto, l’intera discussione menzionata in apertura di post la si puo’ trovare invece qui.

Preferisco aspettare ancora un po’ prima di darmi ufficialmente l’auto-benvenuto nell’allegro mondo del Parallel Computing, ma hopefully la strada e’ ormai tracciata.

PS: nel frattempo mi sono accorto che Irrlicht (almeno nella sua vecchia versione 1.4.2) non compila su Mac OS X Snow Leopard. Il workaround per far tornare la situazione sotto controllo e’ tuttavia molto semplice e si limita a commentare una riga dove viene operato il controllo sulla versione di Mac OS in uso. Al piu’ presto pubblico sul loro forum una nota a riguardo.

Un nuovo filmato

Oggi e’ stata una giornata decisamente positiva. Lavorativamente parlando. Una di quelle giornate in cui sei davanti ai tuoi bei listati C++, ti viene mente di fare qualcosa, apporti le dovute modifiche e tutto funziona. Perfettamente e al primo colpo. Allo stesso modo di come l’avevi pensata. Giornate che, lo ammetto, quasi mi portano alla commozione.

Quello che ho combinato, nello specifico, e’ stato lavorare sul viewer dei miei MAVs. Ho aggiunto quattro telecamere, ciascuna di esse collegata ad uno dei MAVs e puntata verso il target, inserito una combo box che permette di scegliere quale utilizzare (una delle 4 piu’ una tradizionale Maya-style) ed aggiunto a video tutte le informazioni sensoriali relative all’aereo selezionato, aggiornate in tempo reale. Ci sono ancora margini di miglioramento per quanto riguarda il codice, dato che il numero di telecamere al momento e’ fisso a quota 4. Una limitazione gia’ adottata per lo script Matlab che permette di effettuare le analisi post-test e che credo manterro’ dunque tale. Devo comunque fare in modo che non vi siano problemi nel caso in cui vengano selezionati per il test team composti da meno di 4 MAVs. Nel frattempo, per celebrare le modifiche apportate al viewer ho rispolverato iMovie 2008 (chissa’ se un giorno mi decidero’ a comprare l’edizione 2009 della suite Apple o ormai aspettero’ direttamente per la 2010) ed ho girato un breve filmato. Prontamente portato su YouTube. Niente di eclatante, ma cerco di raccontare un po’ cosa succede nel mio simulatore. Peccato per la qualita’, che durante l’upload e’ peggiorata notevolmente. Le poche scritte dovrebbero comunque essere leggibili (anche se altrettanto non si puo’ dire per le schermate di XCode e Matlab visualizzate). Beh, buona visione!

PS: pensavo di aver trovato anche una soluzione per il mio annoso problema con il multi-threading, che una volta finito di implementare mi sono accorto conduce a risultati molto diversi (e peggiori) rispetto a quelli che l’engine evolutivo ottiene lavorando su thread singolo. Ripensandoci in serata, mi pare pero’ che la soluzione ipotizzata non sia in realta’ tale…

Un po’ d’ordine tra le simulazioni

Dopo tanto penare dovuto all’utilizzo di uno solo dei 4 server Apple che abbiamo a disposizione (laziness mia, mista a problemi di configurazione vari), la batteria estiva di 18 simulazioni che avevo lanciato a suo tempo (vedi questo post) e’ giunta a conclusione. Tempo quindi di analizzare un po’ i risultati e guardare cosa ne e’ venuto fuori. Approfitto di questo post per mettere un po’ d’ordine nella marea di dati generati dal simulatore.

Information overload (cartoon)

Uno degli obiettivi di queste simulazioni era quello di capire come sarebbe meglio implementare il roll. Nelle simulazioni 1 e 2 ho provato ad escluderlo del tutto, con i MAVs in grado di muoversi soltanto su due dimensioni (yaw e pitch). Movimento assolutamente non realistico, ma molto semplice. Non a caso i risultati migliori che ho ottenuto sono stati con questa configurazione. Le altre due alternative consistevano rispettivamente nel collegare il roll allo yaw (nel momento in cui un MAV effettua uno yaw si autogenera un corrispondente roll, simulazioni 3 e 4) o lasciarlo come una componente del tutto indipendente, con gli aeroplanini dunque liberi di muoversi lungo tre direzioni (simulazioni 5 e 6). Il motivo per il quale sono state elaborate due simulazioni per ciascuna configurazione e’ che per entrambe si confronta l’utilizzo di input continui (simulazioni 4 e 6) e di input discreti (simulazioni 3 e 5). Escludendo le prime due condizioni sperimentali (elaborate solo per scrupolo) concentriamo il confronto sulle altre 4.

NN Architecture Av. Fitness Max. Fitness Success rate
3 -130.3004 345.6638 0.4363
4 -35.2221 407.9116 0.5493
5 53.7617 406.5243 0.6026
6 5.4618 391.213 0.5749

Table Tutorial

Quello che emerge e’ che, in termini di fitness media, le architetture che utilizzano il roll in maniera indipendente, per quanto piu’ complesse, raggiungono performance significativamente migliori rispetto a quelle che hanno il roll legato allo yaw. Ragionando sulla fitness massima, come d’altronde e’ lecito aspettarsi i risultati si avvicinano un po’, pur continuando ad evidenziare una leggera supremazia delle simulazioni 5 e 6. Supremazia evidente anche guardando al success rate, che varia per le ultime due architetture tra il 57 ed il 60% contro il 43-55% delle concorrenti. Contrastanti invece i risultati riguardanti l’utilizzo di input discreti o continui. Con il roll legato allo yaw, la rete che riceve input continui sembra funzionare meglio rispetto a quella basata su input discretizzati. Nel caso dell roll indipendente, invece, pare che la discretizzazione abbia effetti positivi.

L’introduzione di uno strato intermedio nelle varie reti (simulazioni 7, 8, 9 e 10) fornisce un generale miglioramento delle performance, riassumibile nella seconda delle due tabelle presentate qui sotto.

NN Architecture Av. Fitness Max. Fitness Success rate
7 -82.8986 360.323 0.4754
8 49.8237 438.7521 0.6396
9 119.3603 444.415 0.6755
10 53.28 420.1875 0.6028

Table Tutorial

NN Architecture Av. Fitness Max. Fitness Success rate
7 vs 3 +36.37886% +4.2408837% +8.96172358%
8 vs 4 +241.45579% +7.56058421% +16.4391043%
9 vs 5 +122.01735% +9.32064824% +12.0975772%
10 vs 6 +875.50258% +7.40632341% +4.85301792%

Table Tutorial

L’introduzione di un hidden layer sembra dare un forte boost alle performance delle reti testate, senza tuttavie sovvertire le gerarchie che si erano stabilite in precedenza. Le soluzioni che utilizzano il rollaggio in maniera indipendente e non legata allo yaw confermano infatti la loro “supremazia”.

Infine ho testato altre otto architetture (dalla 11 alla 18 incluse), che ricalcano le caratteristiche delle 8 simulazioni precedenti (dalla 3 alla 10), introducendo pero’ delle ricorrenze degli output. Ricorrenze che prendono la forma di reti di Jordan nelle architetture 11, 12, 15 e 16, di reti di Elman nelle reti 13, 14, 17 e 18. Qui sotto le loro performance assolute ed un confronto con le reti equivalenti prive di ricorrenze.

NN Architecture Av. Fitness Max. Fitness Success rate
11 -221.9481 232.8541 0.2086
12 -160.9756 256.3188 0.2472
13 -258.8055 113.8254 0.1295
14 -265.2192 130.6172 0.155
15 -42.8824 311.3557 0.3581
16 -18.4841 346.6911 0.453
17 -92.2134 291.5339 0.3346
18 -85.5089 296.8809 0.3421

Table Tutorial

NN Architecture Av. Fitness Max. Fitness Success rate
11 vs 3 -70.3357% -32.635671% -52.188861%
12 vs 4 -357.0301% -37.16315% -54.997269%
13 vs 7 -212.1953% -68.410176% -72.759781%
14 vs 8 -632.3153% -70.22984% -75.766104%
15 vs 5 -179.7638% -23.41031% -40.574179%
16 vs 6 -438.4251% -11.380476% -21.203688%
17 vs 9 -177.2563% -34.400527% -50.466321%
18 vs 10 -260.4897% -29.345614% -43.248175%

Table Tutorial

Contrariamente alla credenza comune (e comunque in maniera limitata al caso specifico), l’introduzione di ricorrenze pare non apportare alcun beneficio alle mie reti. Le cui performance, al contrario, decrescono in maniera abbastanza significativa, pur conservando qualche buon picco in termini di fitness massima (condizione vera in particolare per le architetture 15 e 16).

Detto tutto cio’, la scelta per l’architettura da utilizzare per i prossimi scenari (un po’ piu’ complicati di quello presentato qui, dove i MAVs si dovevano muovere all’interno di un ambiente del tutto vuoto, cercando di raggiungere un target stazionario) ricade obbligatoriamente sulla numero 9. Input discretizzati, rolling indipendente dallo yaw, hidden layer e nessuna ricorrenza. Un po’ misera come conclusione dopo cotanto lavoro (in realta’ piu’ del server che non mio…), ma tant’e'…

MAVs in copertina

Il mio articolo per Neural Networks e’ ufficialmente in stampa. Il PDF definitivo e’ gia’ pronto, ma visibile al link http://dx.doi.org/10.1016/j.neunet.2009.06.032 di Science Direct soltanto attraverso sottoscrizione. Appena possibile, naturalmente, provvedero’ a metterne una copia a disposizione qui sul sito. Nel frattempo, grazie ad una email arrivatami da quelli della Elsevier, ho scoperto che to commemorate your publication, you can now order printed author copies of the journal issue featuring your article, a unique Certificate of Publication, and/or customized full-color posters featuring your article. Per farlo e’ sufficiente puntare il browser all’indirizzo https://authororders.elsevier.com e riempire a piacimento il carrello. Tra le cose interessanti che e’ possibile acquistare, oltre alle ristampe dell’articolo o dell’intera rivista, vi e’ un certificato, gia’ incorniciato, che (per definizione) certifica la pubblicazione del proprio articolo su Neural Networks. Cosi’ come un poster, che riproduce la prima pagina dell’articolo, le informazioni bibliografiche e la copertina del journal, cosi’ come nell’esempio qui sotto.

Elsevier's Neural Networks - example of a poster celebrating a publication

Si tratta di due cose un po’ insolite, ma sicuramente simpatiche. E delle quali approfittero’. Giusto per celebrare la mia prima pubblicazione su rivista. Nella speranza che questo shopping diventi una piacevole abitudine…

Pagina Successiva »