GruzanteSoccer-ITI Mestre

Transcript

GruzanteSoccer-ITI Mestre
Rete di scuole per la
ROBOCUP JR ITALIA
ROBOCUP JR
ITALIA 2012
Riva del Garda (TN)
19-21 aprile
REPORT DI DOCUMENTAZIONE
della squadra
GruzanteSoccer
ITIS “C. Zuccante” - Mestre
La “Rete di scuole per la Robocup Jr ITALIA” è espressione
dell’Autonomia scolastica regolata dal D.P.R. 275/99 (art. 7) che
permette alle scuole statali di operare sinergicamente per
obiettivi condivisi e ritenuti importanti per l’offerta formativa
erogata all’utenza.
La Rete di scuole è nata sulla condivisione di una serie di principi
EDUCATIVI e DIDATTICI riferiti alla realtà della scuola italiana.
Questi principi e le conseguenti proposte operative erano stati
riportati in un documento del maggio 2008 dal titolo: Manifesto
per una RoboCupJr italiana - una proposta per la diffusione
dell’utilizzo didattico della Robotica nelle scuole a cura di Andrea
Bonarini, Augusto Chioccariello e Giovanni Marcianò. Maggio
2008
L’obiettivo della Rete – organizzare l’edizione italiana della
Robocup Jr – concretizza una spinta al confronto e alla
collaborazione tra Istituti scolastici, elementi che motivano
docenti e studenti all’impegno nell’innovazione, sia didattica che
tecnologica, affrontando i problemi che costituiscono uno
standard internazionale dal 2000, quando la Robocup
(manifestazione riservata alle Università di tutto il mondo) ha
proposto le tre “gare” per la scuola: Dance – Rescue – Soccer.
La Robocup Jr ITALIA è Una manifestazione nazionale fondata di
tre punti forti:
1. una struttura che cura l’organizzazione e gestisce gli aspetti di
organizzazione, promozione, svolgimento ai diversi livelli,
regionali e nazionali;
2. un contenuto condiviso, ovvero regolamenti, formule di gara,
supporto formativo e informativo ai partecipanti;
2
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
3. una documentazione delle proposte didattiche e del lavoro
degli studenti che coinvolgono l’uso di kit o robot auto costruiti
per la partecipazione agli eventi organizzati dalla Rete. Questo
volumetto appartiene alla collana di documentazione.
Sul piano organizzativo e gestionale della Rete di scuole lo
Statuto prevede organismi ben distinti ma fortemente integrati:
COMITATO DI GESTIONE – formato dai Dirigenti scolastici degli
Istituti fondatori o associati alla Rete. Si riunisce due volte l’anno
in via ordinaria, e online per decisioni straordinarie.
ISTITUTO CAPOFILA – come previsto dal DPR 275/99 cura gli
aspetti burocratici, amministrativi e contabili della Rete. Il
Dirigente scolastico dell’Istituto capofila è il legale
rappresentante della Rete e provvede a dare esecuzione alle
delibere del Comitato di Gestione.
COMITATO TECNICO – formato dai docenti referenti degli Istituti
fondatori o associati alla Rete, provvede a definire il Bando e i
Regolamenti di gara per la manifestazione annuale nazionale,
trasmettendoli al Comitato di gestione che li deve approvare.
COMITATO LOCALE
- Cura l’edizione annuale della
manifestazione, ed è formato a cura del’Istituto fondatore o
associato a cui il Comitato di Gestione ha assegnato la cura
dell’evento.
ISTITUTI PARTECIPANTI – iscrivendosi alle gare, beneficiano del
supporto della Rete ma non partecipano alle decisioni gestionali
o tecniche. La partecipazione alla gara nazionale li rende idonei
per aderire alla Rete. Diversamente serve il parere del Comitato
Tecnico.
3
Luppino Andrea
Marini Andrea
Zuccolin Matteo
Gruzante Soccer
PARTECIPA ALLA GARA DI
Soccer B
ITIS “C. Zuccante” - Mestre
Classe 4a ISA
4
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
CAP. 1 - DATI GENERALI
Istituto di provenienza
Istituto Tecnico Industriale Statale C. Zuccante Mestre (VE)
Componenti della squadra
Luppino Andrea
Marini Andrea
Zuccolin Matteo
Capitano / Aiuto Programmatore
Meccanico / Aiuto Programmatore
Programmatore
Docenti responsabili
Callegarin Giuseppe
Memo Alessandro
5
CAP. 2 - DATI DI CONTESTO E MOTIVAZIONE
Abbiamo deciso di partecipare alla competizione Robocup Junior
2012 per cercare di dimostrare le nostre capacità. L’iniziativa ci è
stata proposta dal prof. Callegarin , anche se alcuni di noi
avevano già partecipato alla precedente edizione in categorie e
team differenti. Quest’anno abbiamo deciso di provare ad
attuare tutte le piccole considerazioni emerse dalla nostra
passata esperienza terminata con un mediocre risultato.
Anche se le nostre teste erano piene di ottime idee molte non
sono state realizzate per svariati motivi:
•
•
•
•
Impossibilità di trovare le componenti
Mancanza di tempo
Limiti fisici
Limiti economici
Per esempio inizialmente puntavamo ad utilizzare un kicker
come caratteristica fondamentale dell’attaccante, tuttavia
abbiamo dovuto rinunciare e ripiegare ad un semplice
meccanismo trattieni-palla regolamentare (roller) . Differente
destino è capitato al portiere le cui idee iniziali si sono quasi
completamente sviluppate.
A parte queste piccole quisquiglie in ambito meccanico,
prontamente risolte dal nostro “progettista” Marini , per quanto
riguarda il versante software non abbiamo riscontrato particolari
problematiche, anzi.
Prima di partecipare alla gara di Riva del Garda, un componente
della squadra ha partecipato alla gara regionale tenutasi
all’istituto A. Rossi di Vicenza classificandosi primo. Questo
6
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
risultato ,tuttavia, non ha condizionato il nostro spirito
competitivo e ci ha fatto capire i limiti dei nostri robot come
anche quelli dei nostri concorrenti.
7
CAP. 3 – NOME E STRUTTURA DEL ROBOT
La squadra di gioco, come da regolamento è composta da due
robot a cui sono stati assegnati due ruoli distinti:
•
l’attaccante il cui scopo è inseguire la palla e, una volta
averne preso il possesso, cercare di portarla in goal;
•
Lo scopo del portiere invece è quello di parare i tiri
tentati dagli avversari, cercando di rimanere nella
propria area. Ma nel caso faccia anche qualche goal non
ci dispiace per niente.
Nei prossimi capitoli sono descritte le strutture dei due robot e
anche le tattiche di gioco utilizzate.
8
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
CAP. 4 – MECCANICA
L a struttura dei due robot è formata principalmente dai due
motori posti nella parte anteriore. Questi sono fissati
saldamente tra di loro dato che sono anche la colonna portante
della basetta nxt, posta dietro ad essi. I sensori impiegati sono
collegati di fronte alla basetta (nel caso del sensore ad infrarossi)
oppure più in alto per evitare interferenze (bussola). Sia nel
portiere che nell’attaccante sono presenti 4 ruote motrici,
disposte circa allo stesso modo.
Sono stati utilizzati degli ingranaggi per aumentare la velocità di
movimento dei robot.
L’attaccante nella parte anteriore prevede un sistema di rolling
della palla, formato da un terzo motore che facendo una
rotazione in senso opposto alla palla ne permette la trattenuta.
Per montare tutta la struttura sono stati utilizzati quasi
esclusivamente blocchetti forniti nel kit base lego NXT, ad
esclusione di un compensato che inscrive il robot. Il diametro nel
caso dell’attaccante è di 20 cm invece quello del portiere è
leggermente più grande essendo di 21.5 cm. La scelta di
utilizzare questo pezzo di legno circolare ha portato alcune
migliorie:
•
•
•
Aumento peso dei giocatori
Abbassamento del baricentro
Diminuzione della possibilità di essere ribaltati dagli
avversari.
Nella parte anteriore del legno dell’attaccante è stata ritagliata
una rientranza a forma di mezzaluna regolamentare, grazie alla
quale la trattenuta della palla è più efficiente. La stessa scelta
9
non è stata effettuata nel portiere dato che è quasi inutile far
trattenere ad esso la palla. Quindi si è deciso di tagliare la parte
anteriore a forma di pala di uno spazzaneve, a nostro parere in
questo modo dovrebbe essere più facile respingere la palla (
scopo principale del portiere ) e resistere ai possibili contrasti in
area.
10
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
CAP. 5 – UNITÀ DI CONTROLLO
Come unità centrale dei robot, abbiamo scelto di utilizzare la
basetta programmabile NXT prodotta dalla lego. Per funzionare
necessità di una tensione pari 7.4 V facilmente ottenibile da
alcune batterie stilo oppure attraverso batterie ricaricabili
facilmente reperibili.
Ambedue le basette utilizzate montano l’ultimo firmware
disponibile, cioè la versione 1.31.
Nel blocchetto NXT V2 sono disponibili 3 “uscite” che
permettono il controllo di motori e 4 “ingressi” mediante i quasi
è possibile ricevere valori dai sensori. Nel caso queste 7 porte
non bastassero è possibile ampliarle utilizzando tecniche di
multiplexing.
11
CAP. 6 – SENSORI
I sensori che abbiano utilizzato nei due robot sono stati:
•
NXT Irseeker V2 è il sensore più importante di tutti,
perchè grazie a questo è possibile individuare gli impulsi
inviati dalla palla. Mediante l’utilizzo di una funzione
precisa si può evitare l’interferenza della luce solare.
•
Compass Sensor (LEGO), grazie a questo sensore
utilizzabile come bussola siamo stati in grado di
elaborare gli algoritmi che caratterizzano l’attaccante e
soprattutto evitare autogoal.
•
UltraSonic Sensor (LEGO), un sensore ad ultrasuoni è
utilissimo per rendersi conto degli oggetti presenti di
fronte al portiere/attaccante. Grazie ad esso siamo stati
in grado di capire quando eravamo in possesso della
palla oppure quando era in corso una collisione contro
un muro.
•
Light Sensor (LEGO), il sensore di luce è stato utilizzato
per rilevare la presenza di una linea bianca e di
conseguenza attuare un determinato comportamento.
I prodotti elecanti in precedenza sono tutti forniti dalla lego
eccetto il primo prodotto da hitechnic. I due robot, in ambito
utilizzo sensori, hanno un’unica differenza: il portiere possiede il
sensore di luce invece l’attaccante no. Abbiamo attuato questa
scelta perchè a parere nostro era superfluo tenere conto delle
linee oltrepassante anche per l’attaccante.
12
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
CAP. 7 – ATTUATORI
I motori che abbiamo scelto di utilizzare sono il modello base
fornito nel pacchetto lego NXT.
Il modello presente in figura non è stato utilizzato solo per far
muovere gli automi, anzi è stato anche utilissimo per la crezione
del sistema di rolling che permette all’attaccante di “trattenere”
la palla.
Per quanto riguarda la comunicazione tra basetta nxt – motori, il
collegamento avviene mediante l’utilizzo di cavi ( stile seriali)
forniti nel kit base.
13
CAP. 8 – AMBIENTE DI SVILUPPO
Esistono svariati linguaggi utilizzabili per la programmazione
delle basette NXT. Tra l’ampia scelta noi abbiamo deciso di
utilizzare NXC ( Not eXacly C ) che presenta una struttura c-like.
Il suddetto linguaggio è migliore rispetto ad altri per alcuni
motivi ( a parere nostro ) :
•
•
•
Ottima documentazione
Eccelente gestione del multithreading
Possibilità di utilizzo diretto di funzioni assembly
L’ambiente utilizzato per scrivere/compilare i programmi è stato
Brick Command Center 3.3.
Questo IDE oltre a permettere la creazione di programmi include
anche multeplici tools che permettono un’interazione diretta
con i robot( controllo diretto motori, ecc.. )
14
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
CAP. 9 – IL PROGRAMMA SOFTWARE
Ambedue i programmi, attaccante e portiere, iniziano con alcuni
define che servono per utilizzare in modo più comodo i sensori
oppure per impostare dei limiti ad essi, per esempio ecco l’inizio
del sorgente del portiere:
#define IRSEEKER S2
#define COMPASS S3
#define CLOSE_COMPASS 25
Abbiamo deciso di utilizzare la tecnica di programma chiamata
multithreading, cioè all’interno del nostro processo ci sono
differenti linee di esecuzione ( thread ). Grazie alla
programmazione concorrente è possibile rendere più
tempestivo e fluido il movimento dei “giocatori”. Infatti abbiamo
deciso di creare un thread che si occupa soltanto di leggere i
valori dei sensori, che vengono utilizzati da un’altro thread che
gestisce i motori. Il codice del suddetto thread è :
task sensori(){
while(true){
irda=SensorHTIRSeeker2Addr(IRSEEKER, 0x49);
compass_now=SensorHTCompass(COMPASS)+1000;
NumOut(0,LCD_LINE2,compass_now);
NumOut(2,1,compass_init);
Wait(100);
ClearScreen();
}
}
Ovviamente si potrebbe eliminare le funzioni di debug
(NumOut).
15
ANALISI TATTICA ATTACCANTE
L’attaccante come prima cosa cerca di impossessarsi della palla,
quando il sonar settato appositamente segna il valore
prestabilito e il sensore ad infrarossi segna 5 vuol dire che
abbiamo la palla. Una volta presa la palla, utilizzando la bussola
si sposta verso la porta avversaria. Nel caso in cui perdesse la
palla inizierà nuovamente (in automatico) la funzione che si
ocuupa di garantire il possesso di palla.
ANALISI TATTICA PORTIERE
Il portiere è dotato di un sensore di luce mediante il quale deve
accorgersi si sta uscendo dalla propria area, e in tal caso tornare
indietro. Quando si trova nella sua area si muove sempre verso
la palla e se la trova vicina accelera. Nel caso in cui un robot
avversario mentre entra in area spinge il nostro portiere, questo
farà lo stesso anche se dovrebbe essere fischiato fallo agli
avversari.
Per evitare autogoal è presente inoltre una funzione che
permette di capire la nostra direzione (nostra porta / porta
avversaria)
bool MyGoal(){
if( (compass_init-CLOSE_COMPASS)<compass_now &&
(compass_init+CLOSE_COMPASS)>compass_now)
return false;
int diff=compass_init-compass_now;
if( (abs(diff)>180-CLOSE_COMPASS &&
abs(diff)<180+CLOSE_COMPASS ))
return true;
return false;
}
16
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
Avevamo anche ipotizzato di utilizzare una comunicazione
bluetooth tra i due “giocatori”, ma infine abbiamo deciso di
lasciar perdere quest’idea per concentrarci meglio su altri piccoli
ma importanti particolari.
17
CAP. 10 – SORGENTE DI ALIMENTAZIONE
I due robot sono alimentati da batterie ricaricabili al litio della
Lego da 1500 mAh e 2200 mAh. Abbiamo pensato di non
utilizzare batterie supplementari ma solo di riserva.
18
ROBOCUP JR ITALIA 2012 – Riva del Garda (TN) 19-21 aprile
REPORT DI DOCUMENTAZIONE
RINGRAZIAMENTI
Come conclusione di questa documentazione ci teniamo a fare
alcuni ringraziamenti. Prima di tutto un grazie alla scuola per
averci fornito questa possibilità di avvicinarci al mondo della
robotica e anche per tutto il materiale che ci ha messo a
disposizione. Un ruolo importante è stato rivestito anche dalle
nostre famiglie che ci hanno supportato ma anche aiutato nel
reperire alcuni componenti ( per esempio il papà del nostro
progettista che è riuscito a procurarci in tempi record due
splendidi compensati).
Vada come vada si può dire che per noi è stata una bella
esperienza e saremmo pronti a consigliarla a tutti i nostri
compagni.
19
INDICE
P.5 - CAP. 1 - DATI GENERALI
P.6 - CAP.2 - DATI DI CONTESTO E MOTIVAZIONE
P.8 - CAP. 3 - NOME E STRUTTURA DEL ROBOT
P.9 - CAP. 4 - MECCANICA
P.11 - CAP. 5 - UNITÀ DI CONTROLLO
P.12 - CAP. 6 - SENSORI
P.13 - CAP. 7 - ATTUATORI
P.14 - CAP. 8 - AMBIENTE DI SVILUPPO
P.15 - CAP. 9 - IL PROGRAMMA SOFTWARE
P.18 - CAP. 10 - SORGENTE DI ALIMENTAZIONE
P.19 - RINGRAZIAMENTI
20