Difference between revisions of "CrickBot"

From AIRWiki
Jump to: navigation, search
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
''Questo documento contiene materiale proveniente da fonti esterne:''
+
{{Project
''1 [ [http://venomyeah.altervista.org/robotgarage/index.php/Robot_Grillo Documento Originale] - Autore: Vittorio Lumare -  [http://www.robotgarage.org Sito Riferimento] ]''
+
|title=CrickBot
 +
|coordinator=GiuseppinaGini
 +
|tutor=MicheleFolgheraiter
 +
|students=VittorioLumare;
 +
|resarea=Robotics
 +
|restopic=Robot development;
 +
|start=2006/09/10
 +
|end=2007/07/27
 +
|status=Closed
 +
|level=Bs
 +
|type=Thesis
 +
}}
 +
 
 +
''Questo documento contiene materiale proveniente da fonti esterne:''
 +
''1 [ [http://venomyeah.altervista.org/robotgarage/index.php/Robot_Grillo Documento Originale] - Autore: Vittorio Lumare -  [http://www.robotgarage.org Sito Riferimento] ]''
 +
 
 +
----
 +
 
  
  
Line 6: Line 23:
  
 
E' possibile vedere dei video che mostrano il suo movimento a quest'indirizzo : [http://www.youtube.com/watch?v=sXdNOFMBreM].
 
E' possibile vedere dei video che mostrano il suo movimento a quest'indirizzo : [http://www.youtube.com/watch?v=sXdNOFMBreM].
 +
 +
  
 
==Idea==
 
==Idea==

Latest revision as of 17:36, 14 February 2012

CrickBot
Coordinator: GiuseppinaGini (gini@elet.polimi.it)
Tutor: MicheleFolgheraiter ()
Collaborator:
Students: VittorioLumare (venom@venom.it)
Research Area: Robotics
Research Topic: Robot development
Start: 2006/09/10
End: 2007/07/27
Status: Closed
Level: Bs
Type: Thesis

Questo documento contiene materiale proveniente da fonti esterne: 1 [ Documento Originale - Autore: Vittorio Lumare - Sito Riferimento ]



Robot Mobile con Controllo Neurale Bioispirato al Grillo Bimaculato.

E' possibile vedere dei video che mostrano il suo movimento a quest'indirizzo : [1].


Idea

Punto di Partenza

Grillo bimaculato.jpg

Lo scopo di trovare il luogo in cui si trova un oggetto, senza sapere nulla riguardo alla sua posizione, nè rispetto a sè nè rispetto ad altri punti di riferimento, ma basandosi unicamente sulle sensazioni istantanee, è e sarà sempre uno dei compiti più comuni e importanti per qualsiasi entità mobile autonoma, vivente o non vivente che sia.

Quando poi è uno solo il senso che puo' aiutare a muoversi nella direzione giusta, bisogna avere la massima fiducia in esso e quindi una grande padronanza nell'utilizzarlo.

Il grillo bimaculato è un esempio di come la natura sia riuscita a creare un sistema che assolve a questo compito in maniera piu' che soddisfacente e senza spreco di risorse.

Non c'è dubbio che il grillo abbia molto interesse a saper trovare l'oggetto della sua ricerca, in quanto è il suo partner, e senza di esso non potra riprodursi: per lui trovarlo è di importanza vitale. Fortunatamente il partner emette un suono intorno ai 4.7 KHz come richiamo, il che permette al grillo di sfruttare l'udito per farsi un'idea di dove esso sia.

Avvalendosi dell'udito il grillo comunque sfrutta solo una parte limitata delle informazioni trasportate dal suono, ed essendo un insetto possiede un apparato cerebrale tale da permettergli un'elaborazione molto ridotta delle informazioni acquisite.

Obiettivo

L'obiettivo del progetto Robot Grillo è stato replicare il sistema del grillo su un sistema robotico e verificarne il funzionamento valutando le prestazioni e i comportamenti assunti dal robot.


Stato dell'Arte

Robot Khepera con due microfoni

Il progetto del Robot Grillo è basato sui lavori precedentemente svolti dalla Prof.ssa Barbara Webb e altri <ref>Richard E. Reeve, Barbara H. Webb, “New neural circuits for robot phonotaxis”, 2003, University of Stirlin. </ref> <ref>A.D. Horchler, R.E. Reeve, B.H. Webb, R.D. Quinn, “Robot Phonotaxis in the Wild: a Biologically Inspired Approach to Outdoor Sound Localization”, 2003, Stirling University. </ref> .


Il robot utilizzato nello studio iniziale della Prof.ssa Barbara Webb <ref>Barbara Webb “Phonotaxis in crickets and robots”, [2]</ref> era un Khepera, su 2 ruote differential drive.

Possiamo vedere il robot Kephera nella foto qui a destra.








Teoria

Phonotaxis

La Phonotaxis è la capacità di determinare la direzione di provenienza di un suono, ed esistono piu' modi per farlo utilizzando due sensori acustici (microfoni) montati alla stessa altezza, sfasati orizzontalmente, ed entrambi proiettati nella stessa direzione ma sfasati radialmente.

Un sistema è quello di sfruttare la differenza di intensita sonora tra i segnali rilevati dai due sensori, dovuta al fatto che sono distanti tra loro e orientati diversamente, ed è chiamato Interaural Level Difference (ILD), un altro sistema si basa sul diverso tempo di arrivo del suono ai due sensori, Interaural Time Difference (ITD), dovuto solo alla distanza tra loro.

Apparato Sensoriale Uditivo del Grillo Bimaculato

Del suono il grillo determina la direzione basandosi su un effetto chiamato Interaural Phase Difference (IPD), che consiste in cancellazioni di fase del suono ottenute grazie ad una struttura tubolare molto particolare <ref>Richard Reeve, Andr´e van Schaik, Craig Jin, Tara Hamilton,Ben Torben-Nielsen, Barbara Webb, “Directional hearing in a silicon cricket”, 2006, Elsevier, BioSystems</ref>.

L'apparato sensoriale uditivo del grillo consta di una parte sinistra e di una destra, simmetriche fra loro, ciascuna costituita da un tubo tracheale che porta il suono fino al timpano, l'elemento "trasduttore".

Quando il suono arriva diritto verso l'apertura sinistra, il timpano sinistro riceve il suono alla massima intensità, quando il suono arriva da un'altra direzione, avvengono cancellazioni di fase e il suono è fortemente attenuato, idem per l'apparato destro.

Questo fa sì che il suono che arriva frontalmente al grillo, con uguale inclinazione tra apertura destra e apertura sinistra, venga rilevato attenuato da entrambi i timpani e quindi senza differenza tra destra e sinistra; quando il suono invece proviene piu' da una direzione che dall'altra avremo un timpano che riceve un suono piu' elevato rispetto all'altro timpano: la direzione del suono è stabilita.

La determinazione della direzione è quindi possibile per il grillo grazie al sofisticato apparato sensoriale acustico di cui è dotato.

La successiva elaborazione del segnale è espletata da una rete neurale molto semplice, ma che permette al grillo di reagire adeguatamente a cio' che sente, evitare eventuali ostacoli di fronte a lui e infine di raggiungere il luogo di provenienza del suono.






Sistema di Elaborazione Neurale

Rete Neurale per Phonotaxis

Il sistema da noi sviluppato utilizza una Rete Neurale che assolve al compito di elaborare i dati in ingresso dai sensori e fornire in uscita i dati di comando ai motori.

Questa soluzione è stata già ampiamente utilizzata in molti sistemi di robotica mobile.

La rete che vediamo in figura è stata usata per pilotare il Cricket Robot da Webb <ref>Richard E. Reeve, Barbara H. Webb, “New neural circuits for robot phonotaxis”, 2003, University of Stirlin. </ref> .

Questo tipo di rete sfrutta i 2 ingressi dai microfoni per decidere quanta potenza dare ai due motori del differential drive, il tutto sfruttando solo 4 collegamenti neurali, 2 eccitatori e 2 inibitori.

Questa rete è stata successivamente ampliata <ref>Richard E. Reeve, Barbara H. Webb, “New neural circuits for robot phonotaxis”, 2003, University of Stirlin. </ref>, aggiungendo 2 neuroni, ON1 e ON2 e delegando a loro il compito di incrociare i segnali inibitori.

I due neuroni nuovi, come vediamo in figura, oltre a incrociare il segnale sonoro verso i neuroni motori, si inibiscono tra loro con altri 2 collegamenti inibitori.

Questa reciproca inibizione fa sì che la normale differenza del segnale inviato ai motori venga accentuata, infatti l'inibizione reciproca favorisce il neurone ON che in quel momento è più attivato inibendo l'altro.

L'attivazione neurale viene sbilanciata fortemente a favore del neurone che già era più attivo.








Implementazione

Hardware

Il Robot

Il Robot Mobile "Grillo" realizzato

Per il sistema che abbiamo sviluppato è stato scelto di usare due microfoni direzionali come sensori acustici, una barriera di sensori a infrarossi per rilevare gli ostacoli e un sistema di locomozione differenziale su ruote.

La struttura del robot è di forma cilindrica , diametro 32 cm altezza circa 20 .

La gestione del funzionamento dei sensori a infrarossi e dei comandi ai motori è stata affidata ad un microcontrollore PIC18F4431 <ref>Microchip PIC18F4431, “PIC18F2331/2431/4331/4431 Data Sheet”, Datasheet number: 39616b, http://www.microchip.com</ref>, programmato in C.

Esso controlla interamente l'apparato di prossimità a infrarossi, mentre si occupa solo di una parte del sottosistema motori. I motori sono infatti pilotati dal PIC, ma l'erogazione di energia elettrica necessaria a muoverli è regolata da una scheda dedicata con circuito H-bridge su integrato L298 <ref>STMicroelectronics, “L298 Dual Full-Bridge Driver” Datasheet, http://www.st.com</ref>, che permette di frenare, muovere in avanti o indietro o lasciare in libera corsa ognuno dei due motori.

In questo sistema non verrà sfruttata la possibilita di lasciare in libera corsa i motori, nè quella di muoverli a marcia indietro: ogni movimento sarà conseguenza della combinazione delle velocità in avanti imposte ai due motori, che in caso di frenata diventano 0.

Il PIC effettua un controllo in PWM della velocità, che viene regolata con precisione grazie al feedback ricevuto da due encoder incrementali posti sugli alberi dei motori.

Il sistema implementato è un regolatore P.I.D., di cui in questo studio vengono sfruttate le componenti Proporzionale e Integrale , lasciando a zero il fattore Derivativo, in quanto non necessario.

Gli encoder montati sui motori vengono usati anche per odometria, che viene gestita dal sistema su PC per disegnare il percorso compiuto dal robot.

I microfoni non vengono gestiti dal PIC, ma hanno una scheda di amplificazione dedicata che manda il segnale via cavo audio stereo direttamente alla scheda audio del PC su cui gira il sistema centrale di controllo neurale.

Il PIC comunica col PC tramite cavo seriale alla velocità di 9600 baud/s.

Riassumendo quindi il robot invia al PC i suoni ricevuti con cavo audio, i segnali dei sensori di prossimità e degli encoder per odometria con cavo seriale, e riceve dal PC i comandi tramite cavo seriale.

In ricezione il PIC accetta solo i due comandi di velocità ai motori.

Sezione Audio

I due microfoni usati sono a bobina, unidirezionali di tipo cardioide, pensati per amplificare la voce umana.

Come nel grillo, in cui è l'apparato sensoriale uditivo esterno che si occupa di tradurre una differenza di direzione del suono in una differenza di intensità sonora, anche qui è proprio il tipo direzionale di microfoni usati e la loro disposizione ad angolo che accentuano la differenza di livello del suono. Questo semplifica l'elaborazione da parte del sistema software, che deve solo basarsi sulla differenza di intensità uscente dai due canali audio amplificati.

La scheda alla quale sono coillegati i microfoni ha 2 stadi di amplificazione per ogni microfono, ogni stadio realizzato con un integrato LM386 <ref>UTC, “UTC LM386 Linear Integrated Circuit” Datasheet, www.datasheetcatalog.com</ref>.

In tutto 4 integrati che amplificano 2 canali e li trasmettono via cavo audio stereo alla scheda audio del PC.



E' visibile anche la striscia di catroncino nero che scherma eventuali fasci infrarossi uscenti dalla parte posteriore dei led.


Sezione Rilevamento Ostacoli

Robot Grillo: I Led Infrarossi disposti a semicerchio nella zona frontale.

L'apparato sensoriale di prossimità è costituito da una barriera di diodi infrarossi a fascio stretto, suddivisi in due sezioni, destra e sinistra, ognuna composta da 8-9 led. E' mostrato in figura

La corrente che attiva i led è distribuita in egual misura su ogni led, così che venga illuminata uniformemente tutta la zona di rilevazione alla relativa sezione attivata.

I sensori di rilevazione <ref>Vishay Telefunken, TSOP17..SE1 “Photo Modules for PCM Remote Control Systems” Datasheet, www.vishay.com</ref> sono 4 e sono posti dietro ai led e coprono l'intera area di rilevazione intorno alla parte frontale del robot.

Robot Grillo: I 4 Sensori IR disposti a semicerchio

Questi sensori contengono un amplificatore di segnale e un filtro a 38kHz che protegge da disturbi ambientali, e danno in uscita un solo valore logico, 0v o 5v , in caso di presenza o assenza di luce infrarossa modulata incidente.

Essi sono accoppiati in parallelo in un unico blocco che ha una sola uscita, così che qualunque di essi abbia l'uscita a 0v , l'uscita del blocco sarà 0v, se invece sono tutti a 5v l'uscita del blocco sarà anch'essa a 5v.

Questa semplificazione permette di ridurre il numero dei cavi e dei segnali da elaborare.

Il PIC attiva le sezioni sinistra e destra alternativamente, e controlla ad ogni iterazione se il blocco sensori rileva un ostacolo nella zona illuminata dalla sezione attivata.

Vengono effettuati 4 livelli di controllo per ogni sezione.

Ogni livello corrisponde ad un range di distanza di rilevazione.

Il livello 1 è il piu' vicino, ovvero rileva solo ostacoli entro 5 cm circa dal perimetro della barriera, gli altri 3 livelli aumentano la distanza di rilevazione progressivamente, quindi abbiamo 10 cm , 15 cm, e infine 20 cm per il livello che ha il range più ampio.

Per variare la distanza alla quale il sensore percepisce l'ostacolo si è sfruttata la variazione della frequenza di modulazione dei led emettitori da quella ottima di 38kHz.

La luce infrarossa modulata a 38kHz è quella percepita a distanza maggiore, riducendo (o aumentando) tale frequenza, ad esempio a 34 kHz , a parità di intensità emessa, la luce viene percepita ad una distanza minore.

Con questo sistema siamo riusciti ad ottenere i 4 livelli di distanza di rilevazione degli ostacoli, più che sufficienti per lo scopo.




Sezione Motori

Robot Grillo: Zona motore

I motori sono dei Brushed a Corrente Continua, con velocità massima a 12 V di circa 6000 rpm , ridotti con una scatola di ingranaggi con rapporto 30:1 per avere più forza trainante.

La velocità angolare massima risultante è di circa 200 rpm, ovvero 3,33 rps, il che significa, dato il diametro di 25 cm delle ruote, una velocità lineare massima del robot di circa 83 cm/s, ideale per il compito e l'ambiente di funzionamento.

Gli encoder montati sugli alberi dei motori sono progressivi e hanno una risoluzione di 32 cpr (Counts Per Revolutions, o anche impulsi per giro).

Gli encoder passano in un sensore infrarosso a forcella che rileva la differenza di colore (bianco o nero) che si alterna sul disco encoder e dà in uscita un valore logico (0v o 5v) alternato.

Gli impulsi così generati vengono catturati dagli ingressi del PIC che, con un timer utilizzato per scandire il tempo, rileva l'intervallo di tempo intercorrente tra un impulso e il successivo, così da determinare istantaneamente la velocità dell'albero motore e quindi della ruota.

Altri sistemi, per rilevare la velocità di rotazione dell'asse, utilizzano il numero di impulsi di encoder catturati in un predeterminato lasso di tempo, sistema questo che impone tempi di rilevazione più alti rispetto al sistema da noi utilizzato, in quanto il lasso di tempo deve essere sufficientemente grande da garantire che almeno un certo numero di impulsi sia stato catturato, al di sotto del quale la risoluzione dell'informazione sulla velocità è troppo bassa, soprattutto alle basse velocità.

Per variare l'intensità di energia elettrica inviata al motore viene utilizzato il sistema PWM (Pulse Width Modulation), che consiste nello spedire un treno di impulsi di cui viene variato il duty cycle.

All'aumentare del duty cycle aumenta il numero di volte nel tempo in cui viene attivato il motore.

La scheda H-Bridge, che è l'ultimo stadio prima dei motori, riceve i due treni di impulsi a 0 - 5 Volts, pilotando così le tensioni di alimentazione ai motori, che vanno da 0 a 12 Volts.

Il PIC, potendo quindi inviare potenza variabile ai motori, e conoscendo la velocità alla quale stanno andando, può effettuare un controllo in feedback calcolando l'errore rispetto alla velocità desiderata.

Tale controllo è stato implementato con un algoritmo PID, di cui attualmente sono sfruttate le due componenti Proporzionale e Integrale, che permettono un rapido raggiungimento e un'ottima precisione della velocità desiderata.

Un eventuale inclusione del fattore derivativo permetterebbe anche il mantenimento della velocità desiderata in caso di veriazioni brusche, ma in questo studio non è risultato necessario.



Sezione Comunicazione Robot-PC

I dati rilevati ( suono , ostacoli e velocità ruote), sono inviati al PC su canali diversi accorpati in un unico cavo, che fornisce anche l'alimentazione al robot. Il cavo è schermato con calza esterna ed è da 8 poli (contiene al suo interno 8 sotto-cavi).

La calza schermante è posta a massa, 1 polo viene usato per fornire i 12 volt di alimentazione al robot, 2 poli sono dedicati ai due canali audio che vanno dai microfoni alla scheda audio del PC, altri 2 poli sono i canali RX e TX della seriale.

Il due canali audio trasmettono i segnali in forma grezza come variazione di tensione nel tempo.

Essendo tutti i sottocavi all'interno della stessa calza, sono presenti fenomeni di mutua induzione, soprattutto da parte del canale seriale verso quello audio, che risulta così disturbato.

Tale disturbo è stato eliminato col filtraggio a 1 kHz, comunque richiesto anche per motivi connessi al livello di rilevazione dei microfoni e al carico di elaborazione da parte del PC.

Il canale seriale è pilotato dal PIC , ed ha il seguente funzionamento in cui il MASTER è il PC e lo SLAVE è il PIC:

  1. il PC INVIA un pacchetto di comandi al PIC
  2. il PIC lancia un interrupt e si dedica istantaneamente alla registrazione del pacchetto
  3. il PIC, immediatamente dopo la ricezione, invia il suo pacchetto di informazioni al PC
  4. il PC RICEVE il pacchetto dal PIC e lo salva nel buffer, che verrà poi letto dal software

Il pacchetto inviato dal PC al PIC contiene i comandi dei motori.


Formato Paccetto TX:

“XXXAYYY7”

  • XXX è il valore della Velocità desiderata del Motore Sinistro in 3 cifre
  • YYY è il valore della Velocità desiderata del Motore Sinistro in 3 cifre
  • A è il carattere alfanumerico Ascii che abbiamo scelto come separatore tra i due valori inviati.
  • 7 è il carattere alfanumerico Ascii che abbiamo scelto come delimitatore di Fine pacchetto.

Il pacchetto inviato dal PIC al PC contiene le informazioni sulle velocità dei motori e sugli ostacoli rilevati.


Formato Pacchetto RX:

  • “S(TAB)(CSX)(TAB)(CDX)(TAB)(OBSTSX)(TAB)(OBSTDX)(TAB)E”
  • S : carattere Ascii delimitatore di Inizio pacchetto
  • E : carattere Ascii delimitatore di Fine pacchetto
  • (TAB) : carattere Ascii di Tabulazione usato come Separatore tra i valori numerici inviati
  • (CSX) : valore Velocità Encoder Sinistro
  • (CDX) : valore Velocità Encoder Destro
  • (OBSTSX): valore presenza Ostacoli a Sinistra
  • (OBSTDX) : valore presenza Ostacoli a Destra



Software

Il software che gira sul PC è Matlab, di cui viene usato il ToolBox Simulink per l'implementazione della rete neurale, e il normale codice di programmazione per operazioni di supporto, scambio dati, logging e rappresentazione grafica.

Il modello simulink rappresentato in figura è il cuore del nostro sistema di controllo del robot. Il blocco centrale è la rete neurale basata su quella del grillo, essa riceve i segnali a sinistra e li processa in 3 stadi.

I segnali che arrivano all'ingresso del controllore neurale sono pretrattati, sempre in matlab.


Discretizzazione Temporale

Tutte le operazioni del sistema avvengono in quanti di tempo.

Ogni quanto è di 0.04 secondi e all'interno di esso avviene l'estrazione dei segnali appena descritta, il loro invio alla rete, l'uscita dei segnali dalla rete e il loro invio alle ruote, e infine i log dei dati in una matrice che aumenta di una riga dati ad ogni quanto.


Logging

Nella matrice di log dei dati provenienti dal PIC vengono salvati i valori dei sensori di prossimità, delle velocità delle ruote.

Altre 3 matrici di log sono dedicate al salvataggio dei valori dei neuroni dei 3 strati.

  • inNeur : contiene in valori dello strato di input
  • midNeur : contiene in valori dello strato intermedio
  • outNeur : contiene in valori dello strato di output

Le matrice di log servirà alla fine di ogni esperimento per verificare cosa è successo, grazie alla rappresentazione su piano cartesiano dei dati nel tempo e alla rappresentazione grafica bidimensionale dell'ambiente in cui si muove il robot e del percorso da esso compiuto sotto forma di scia.

In seguito queste rappresentazioni vengono studiate per comprendere il comportamento adottato dal robot con quella particolare configurazione di pesi neurali.



Filtraggio e pre-elaborazione dati

I due canali audio vengono filtrati con un filtro passa-banda molto selettivo impostato intorno a 1kHz, che è la frequenza emessa dalla sorgente sonora che il robot dovra raggiungere.

Una volta filtrato, il segnale audio viene suddiviso pacchetti di campioni, e ogni pacchetto (per ogni canale) viene elaborato nel quanto di tempo.

L'elaborazione consiste nel calcolare il valore assoluto che sarà inviato agli ingressi della rete.

In ogni quanto i dati sui sensori di prossimità sono prelevati dal pacchetto ricevuto via porta seriale dal PIC, normalizzati , registrati nel log e quindi inviati alla rete.

I valori normalizzati dei sensori sono 4: 0.2, 0.4, 0.6 e 0.8 .

I dati provenienti dagli encoder vengono elaborati in uno script di matlab che estrae la velocità, basandosi sul diametro delle ruote e sulla risoluzione degli encoder, e la memorizza nel log.




La Rete Neurale

La Rete Neurale Utilizzata

La rete utilizzata è composta da 3 strati.

Il primo stadio è quello di ingresso, preleva i segnali in arrivo dai microfoni e dai sensori di prossimità e li normalizza.

Il secondo stadio contiene dei neuroni a peso variabile, riceve i segnali uscenti dal primo stadio ed effettua una selezione del comportamento del robot in base ai pesi impostati.

Il terzo stadio riceve i segnali dal secondo stadio e li invia agli amplificatori esterni.

Gli amplificatori esterni servono a innalzare il valore dei neuroni, che è normalizzato tra zero e uno, affinchè sia sufficiente a muovere i motori e quindi le ruote.


E facile intuire il funzionamento della rete osservando i suoi collegamenti.

Limitandoci alle Orecchie, vediamo che un attivazione del neurone 2 (Orecchio dx) provocherà un'attivazione del neurone 5 (Ruota sx) un'inibizione del neurone 6 (Ruota dx).

Col sistema differenziale, un'attivazione della ruota sinistra o un'inibizione della ruota destra provocano una variazione in senso orario (e quindi verso destra ) dell'orientamento del robot, che quindi si volgerà verso il suono (a destra). Un suono proveniente da destra, incidendo maggiormente sul microfono destro, provocherà un'avanzamento verso destra del robot.

La sottorete dei Baffi (sensori ostacoli) sx e dx ha lo stesso funzionamento, con eccitazione e inibizione invertite.

Un'attivazione del Baffo sx provocherà un'avanzamento del robot verso destra, in modo da evitare l'ostacolo che si trova a sinistra.

Rispetto a prima è stato aggiunto un collegamento eccitatorio tra il Baffo sx e la ruota sx.

Nella rete precedente non era stato usato per imporre un'asimmetria nella risposta ai motori in presenza di un ostacolo al centro, che altrimenti avrebbe fatto muovere le ruote alla stessa velocità causando uno scontro del robot con l'ostacolo.

Senza quel collegamento il robot girava a dx in presenza di un ostacolo al centro.

Adesso l'asimmetria non è più presente nella struttura della rete, che è simmetrica.

L'implementazione dell'asimmetria è stata delegata ai pesi neurali . I pesi dei collegamenti tra baffi e ruote dovranno avere valori diversi tra baffo sinistro e baffo destro. Ad esempio, negli esperimenti da noi effettuati, abbiamo reso diversi i valori delle sole inibizioni, ponendo l'inibizione baffo_sx-ruota_dx più alta dell'inibizione baffo_dx-ruota_sx .



Variazione dei Pesi Sinaptici

I neuroni di cui variamo il peso sono quelli intermedi tra neuroni di ingresso e neuroni di uscita.

I collegamenti di cui variamo il peso sono i seguenti:

  • Eccitazione del neurone-motore-sinistro da parte del neurone-orecchio-destro
  • Eccitazione del neurone-motore-destro da parte del neurone-orecchio-sinistro
  • Inibizione del neurone-motore-sinistro da parte del neurone-orecchio-sinistro
  • Inibizione del neurone-motore-destro da parte del neurone-orecchio-destro
  • Eccitazione del neurone-motore-sinistro da parte del neurone-ostacolo-sinistro
  • Eccitazione del neurone-motore-destro da parte del neurone-ostacolo-destro
  • Inibizione del neurone-motore-sinistro da parte del neurone-ostacolo-destro
  • Inibizione del neurone-motore-destro da parte del neurone-ostacolo-sinistro

Variando anche singolarmente il peso un solo collegamento alla volta possiamo osservare una variazione del comportamento del robot .

Vedremo ad esempio di come un'aumento dell'inibizione dei neuroni-orecchie sui neuroni-motore induca il robot a compiere curve più strette.



Rappresentazioni Grafiche

Alla fine di ogni esperimento uno script (drawLog.m) rappresenta le informazioni utili in forma grafica.

  1. Scrive una tabella contenente i valori dei pesi dei neuroni intermedi.
  2. Disegna in 2D la scena dell'ambiente di prova con gli ostacoli e la sorgente sonora, traccia la scia percorsa dal robot, disegna il robot nella sua posizione finale.
  3. Plotta i valori nel tempo dei neuroni dei 2 strati ingresso e uscita in una unica figura in modo che sia facile vedere a occhio nudo le relazioni fra essi in ogni istante di tempo.
  4. Plotta i valori nel tempo dei neuroni dello strato intermedio.


Bibliografia

<references/>

--venomyeah 18:24, 11 lug 2011 (CEST)