SQUADRA MarconiRovereto

Documenti analoghi
RELAZIONE TECNICA. ISTITUTO SUPERIORE STATALE G. GALILEI MIRANDOLA (MO) Via J. Barozzi, 4 Sede temporanea E.S.T.

ATTIVITÀ 1. Controllo con telecomando

Ultrasonic Sensor Block

FIRST LEGO LEAGUE ITALIA BOLZANO 14 febbraio Squadra FLL 4: LICEO ROSMINI RELAZIONE TECNICA. TITOLO DEL PROGETTO: ipec

Impariamo a programmare con Scratch. Lezione 3: Proviamo a muoverci da soli

Introduzione alla robotica

ROBOCUP JR ITALIA 2011

ROBOTICA E MATEMATICA. GEOGEBRA e i ROBOT. Donatella Merlo (Scuola di Robotica) Ada Sargenti (La Casa degli Insegnanti)

I sensori del robot 1

Robotica educativacon il kit Lego EV3

ROBOCUP JR ITALIA 2012 Riva del Garda (TN) aprile

Descrizione puntuale delle modalità di collocazione delle attrezzature

ROBOCUP JUNIOR. CATANIA, Aprile SenigalliaRobot. A cura di: Mazzanti Matteo Stefanini Alessandro Simone Giovanni

Per vedere tutti i tutorial:

Programmazione Modulare

RELAZIONE. Descrizione dell apparato sperimentale, materiale utilizzato, altre caratteristiche specifiche

Sistema di Elaborazione. Sistema di Controllo. Figura 1

Macchinina evita ostacoli Arduino

ROBOCUP JR ITALIA 2012 Riva del Garda (TN) aprile

Educational Robotics. Seconda lezione

Il sensore seguilinea

Coding con Scratch. Coding unplugged e con il PC nella scuola primaria

MANCA : VETTORI, FORZE E MOMENTO DI UNA FORZA

RELAZIONE SUL PROGETTO CODING

I.T.T.S. "Cerulli" GIULIANOVA -TE- Laboratorio di Robotica Educativa Tutorial Robot in... 5 minuti!

INSEGUITORE SOLARE CON ARDUINO. Dispositivo che insegue il movimento solare realizzato con: 1. Arduino 2. 2 foto resistenze 3.

PROGRAMMA di FORMAZIONE

1vs1 difesa. Formula: togliere lo spazio vantaggioso prima che lo stesso venga occupato dall attaccante.

A. Ferrari Informatica

CATANIA 2011 DATI GENERALI DATI DI CONTESTO E MOTIVAZIONE

Progetto di Eccellenza - OMAROBOT -

ROBOCUP JR ITALIA Riva del Garda aprile

RELAZIONE. Titolo Esperimento ALLA RICERCA DELLA ZONA DI ABITABILITA

Cos è? Definizione ufficiale scritta dall inventore di Arduino, Massimo Banzi.

I robot si sono evoluti...

WORKSHOP: Costruire attività STEAM e robotica educativa con LEGO MINDSTORMS Education EV3

Corso Generazione Web. Sede Corso: IC di Via Anna Botto - Vigevano Dirigente: Alberto Panzarasa Tutor: Claudia Verminetti. Attività di coding

a x + b = 0 (dove a e b sono coefficienti generici dell equazione ed

ROBOCUP JR ITALIA RIVA DEL GARDA

Magellano. Macchina Commettitrice

DOCUMENTAZIONE. Isovak Team. classe 3D Liceo Scientifico Tecnologico. IISS Galilei

Progetto Informatica. Primo esempio Gruppo 1. Laura Tarsitano

Progetto tecnico. Progettazione meccanica:

ROBOCUP JR ITALIA 2012

MISURIAMO LA VELOCITÀ CON I ROBOT

Robot Escape scatola di montaggio. Presentazione del produttore. Attrezzi necessari per la costruzione del robot Escape:

Procedure e funzioni A. Ferrari

Corso di Laurea in Matematica per l Informatica e la Comunicazione Scientifica

Esercizi Scratch: Sensori

Lezione 3: Il problema della localizzazione

CERCACI SU FACEBOOK WORLDCUBEASSOCIATION.ORG CUBINGITALY.ORG GUIDA VERSIONE 3.0

Mi Motion-Activated Night Light Manuale utente

Corso STEM PROGRAMMAZIONE

MECCANISMI PER LA TRASMISSIONE DEL MOTO

Relazione sul lavoro di Robot Design della squadra dei Miccorobokids Pistoia 1) Missioni scelte

ISTITUTO ISTRUZIONE SUPERIORE G. Vallauri FOSSANO (CN) DIPARTIMENTO di MECCANICA. Descrizione e finalità

Dare vita alle idee 6-21 ottobre2018

Introduzione alle macchine a stati (non definitivo)

La piattaforma per la robotica educativa VEX IQ è pensata per gli studenti a partire dalla scuola primaria. Si adatta sia a studenti alle prime armi

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n PONTEDERA (PI) PROGRAMMAZIONE COORDINATA TEMPORALMENTE DISCIPLINA: ROBOTICA

ADVANCED EV3 PROGRAMMING LESSON. Usare il sensore giroscopico e gestire la deriva (drift) By Sanjay and Arvind Seshan

Corso di Laurea Magistrale in Informatica

Programmazione di un tornio con asse Y

A DISTANCE AHEAD LED SCANNER MULTIRAGGIO R2100

FIRST LEGO LEAGUE ITALIA MILANO 6-7 marzo Squadra FLL4: LICEO ROSMINI RELAZIONE TECNICA. TITOLO DEL PROGETTO: ipec

Progetto di Informatica Industriale GIRASOLE Andrea Controzzi

SOLUZIONE CUBO DI RUBIK - Metodo strato per strato

CLASSE 3A MISSIONE SU MARTE

Radar e Sistema di Puntamento con Arduino e Processing

ESPERIENZA PER DETERMINARE L ASSORBIMENTO DI ENERGIA LUMINOSA NEL PASSAGGIO DELLA LUCE ATTRAVERSO STRATI DI VETRO

Algoritmo. Calcolabilità

CLASSE 3 ELETTRICO ESERCITAZIONI DI PLC

COME FARE UNA RUOTA A MOVIMENTO PERENNE: prima guarda questa foto:

Attività 12. Gli ordini di marcia I linguaggi di programmazione

UNA GUIDA FACILE PER RISOLVERE IL CUBO DI RUBIK

Guida all educazione STEM. Dal punto di vista degli studenti

Unità di apprendimento 6. Dal problema al programma

Robolaboratorio. Laboratorio Di Robotica: Proposta Per Alcune Attività Didattiche. Cristiana Bianchi

Programmazione con Java

Concetti fondamentali

Meccanica 15Aprile 2016

Corso di Automazione industriale

ROBOTICA EDUCATIVA. Prof. Renato Grimaldi Prof.ssa Silvia Palmieri. Istituto Comprensivo G. Marconi. a.s Collegno, settembre 2014

PHASE 10 GIOCO DA TAVOLO In più la plancia! più tensione! più PHASE 10! da 2-6 giocatori dai 10 anni in su Tutte le fasi (combinazioni di determinare

SENSORI DI PARCHEGGIO. PS4-a2s

Corso di Automazione industriale

Corso di Automazione industriale

Guida per risolvere il cubo di Rubik

CODING for LEGO ROBOT

ROBOT CUP SCHOOL Competizione organizzata dall Università degli Studi di Salerno Corso di laurea in Ingegneria Informatica

Cinematica e Controllo di un robot mobile

LABORATORIO DI ROBOTICA SCORBOT-ER. Appunti per laboratorio didattico

Esempi di sistemi cinematici equivalenti ricavati a partire da esempi di meccanismi

CIM Computer Integrated Manufacturing

Misure di Vibrazioni sul Sistema di Misure Magnetiche dei LNF

ATTIVITA MINI E MICRO-VOLLEY 2015/2016 GIOCHI E PERCORSI

Rete Regionale di Robotica Educativa

Sensori di spostamento a triangolazione laser. Serie IDP TR CARATTERISTICHE: ATTENZIONE:

T2C2 Training to Code 2

WI-BT ANEMOMETRO ISTRUZIONI (Con cellula solare) sensore vento e sole/vento

Transcript:

REPORT ROBOCUP 2012 UNDER 19 CLASSE RESCUE B SQUADRA MarconiRovereto COMPONENTI: Paolo Chistè: Programmatore Giovanni Cocchiara: Programmatore Niccolò Pederzini: Meccanico Istituto I.T.I G. Marconi Classe 4B Informatica e 3B Mecatronica Prefazione La squadra è stata riunita dal professore Federico Bertolli,che ha scelto i membri della squadra tra i partecipanti al corso di robotica organizzato dalla scuola. La robotica è stata scelta dalla scuola come occasione per fondere assieme diverse materie, tra cui l informatica, la meccanica, la matematica e l elettronica. La robotica è infatti una materia molto traversale ; per questo la decisione di avere nella squadra una parte meccatronica ed una informatica, così da conciliare teoria e pratica.

SPIEGAZIONE CODICE E LOGICA DEL ROBOT L NXT, il mattoncino intelligente che controlla il robot, può essere programmato in molti modi. L ambiente di sviluppo grafico standard dell NXT è utilissimo dal punto di vista didattico, tuttavia limita il controllo sul robot, quindi non è adatto ai nostri scopi. La squadra ha quindi deciso di utilizzare il linguaggio NXC ( Not Exactly C) che permette di programmare il robot tramite una sintassi simile al C. L NXC è scaricabile gratuitamente ( assieme ad un utile ambiente di sviluppo) da SourceForge. In seguito abbiamo analizzato i compiti di un robot Rescue, che sono: Inseguimento linea Gestione Interruzione linea Aggiramento ostacolo Ricerca lattina Posizionamento lattina Questi compiti sono complicati se affrontati tutti assieme; per questo abbiamo utilizzato la filosofia top-down, che consiste nello scomporre ogni problema in sottoproblemi più facilmente risolvibili; mettendo assieme le soluzioni dei sottoproblemi si ottiene la soluzione al problema di partenza. Ogni compito del robot è stato attentamente analizzato e trasformato in un automa a stati finiti; dopodiché tale automa è stato tradotto in codice NXC. ORGANIZZAZIONE DEI TASK I vari problemi richiedono che il robot si comporti in maniera diversa a seconda del contesto; ad esempio, ritrovare la linea ha un significato diverso se stiamo curvando o se stiamo evitando un ostacolo. Realizzare ciò in un solo blocco di codice sarebbe difficile e macchinoso; si è quindi deciso di utilizzare più task.un task è un serie di istruzioni utilizzate per risolvere uno specifico problema;più task possono essere eseguiti assieme (multitasking). Quando il robot si trova davanti a una particolare situazione, chiude il task corrente e avvia il successivo; visto che ogni task ha uno

spazio riservato nella memoria del robot, non si rischiano conflitti e comportamenti anomali. Di seguito abbiamo la spiegazione dettagliata degli algoritmi utilizzati dai task: Inseguimento linea(linefollower) L'algoritmo di inseguimento linea sfrutta due sensori di luce posizionati nella parte anteriore del robot, adiacenti fra loro e rivolti verso il basso. Questi sensori rilevano l'intensità luminosa riflessa dal pavimento restituendo un numero intero che risulterà maggiore in presenza di un colore chiaro e minore con un colore scuro. L idea alla base dell inseguimento sta nel comprendere se la linea si trova a destra o a sinistra del robot e farlo sterzare di conseguenza. Per realizzare questo comportamento si è pensato e disegnato l automa a stati finiti nella figura. Una volta compreso il problema e trovato tale ASF si è passati alla sua implementazione vera e propria con il codice di Errore. L'origine riferimento non è stata trovata.. Vengono sfruttate due variabili per tenere traccia dello stato dell automa nel quale si trova il robot e in ogni stato si intraprendono i dovuti azionamenti dei motori. Assieme a questo task è sempre in esecuzione un altro task, che si occupa di attivare il task della interruzione linea quando capisce di aver perso la linea. Interruzione linea (BrokenLine) Il robot si riposiziona dritto rispetto alla linea, e poi si muove avanti scansionando l area con un movimento a spazzola, fino a quando non ritrova la linea.

Aggiramento Ostacolo (ObstacleAvoid) Questo task viene attivato quando il sensore di distanza rileva una distanza davanti a sè minore di 20 cm. Il robot ruota prima di 45 gradi a destra, poi 45 gradi a sinistra; il robot confronta le distanze, come si vede nella figura.in questo modo riesce a capire da quale parte può passare e da quale part e si trova il muro. A questo punto, si riposiziona davanti all ostacolo, ruota di 90 gradi, va avanti di 10 cm, quindi ruota di nuovo a 90 gradi. Controlla se alla sua sinistra (o destra) c è un ostacolo, quindi riprende a muoversi, fino a quando non vede più l ostacolo o ritrova la linea. Ricerca lattina (SaveCan) La ricerca della lattina viene attivata quando il valore rilevato dai sensori di luce supera una certa soglia; questo vuol dire che abbiamo superato la striscia argentata che delimita l entrata della zona di ricerca. Il robot si muove avanti fino a trovare il muro; poi scansiona la stanza come in figura; quando rileva un ostacolo che non è un muro attiva il codice per prendere la lattina: il motore della pinza viene fatto andare avanti; quando le ganasce si chiudono la pinza inizia a sollevarsi. Discriminazione tra muro e lattina

Movimento del robot durante la ricerca della lattina Posizionamento lattina (SaveCan) Il robot procede in avanti fino a incontrare il muro, poi gira di 90 gradi e va avanti fino a quando non incontra un angolo della stanza Il robot tiene il sensore di distanza basso, e si muove lungo il muro. Quando incontra un ostacolo (ovvero, il muro oppure la piattaforma) si muove come in figura: A questo punto, confronta le distanze che ha misurato; se la distanza centrale è maggiore di quella degli estremi quello che ha davanti è un angolo; se è minore, il robot ha la piattaforma davanti a sé. Se viene rilevato un angolo, il robot si gira di 90 gradi e riprende a muoversi; se viene rilevata la piattaforma, il robot va avanti verso la piattaforma e rilascia la lattina, concludendo la gara. MECCANICA E FUNZIONAMENTO La costruzione del robot si basa sul principio se non c è, non si rompe. Abbiamo limitato al minimo il numero di componenti, escludendo soluzioni meccaniche magari più semplici da realizzare ma meno robuste all atto pratico. Schema dei componenti principali del robot

DISPOZIONE DEI COMPONENTI E DISTRIBUZIONE DEL PESO I motori sono stati messi nella parte posteriore del robot, in modo da spostare tutto il peso sul retro. In questo modo, il peso del è sufficientemente spostato indietro in modo da riuscire a sollevare la lattina, ma non troppo per evitare di ribaltarsi durante la salita. TRASMISSIONE La trasmissione si basa su un sistema a quattro ruote motrici; ad ogni motore sono assegnate due ruote(vedi sopra): L idea è di muovere entrambe le ruote da un lato, mentre quelle sul lato opposto ruotano in senso contrario; in questo modo possiamo far ruotare il robot su se stesso pur rimanendo fermi in un punto. Questo è lo stesso principio dei bobcat, le famose miniruspe a quattro ruote. ENCODING Tutti e tre i motori del robot sono dotati di encoder ottico. Rilevatore ottico

Un encoder ottico si basa su ingranaggio bucherellato assieme ad un illuminatore ed un sensore IR contrapposti. Quando l ingranaggio ruota su di un buco, il raggio raggiunge il sensore e invia un segnale. L encoder interpreterà questo segnale come una rotazione di 1, 2, 10 gradi.. Questo fatto è sfruttato dal nostro programma per conoscere con precisione il movimento effettuato dal robot,convertendo i giri del motore in giri delle ruote. PINZA Uno dei maggiori problemi è stato capire come azionare la pinza avendo un solo motore a disposizione. La questione è stata risolta creando una pinza che quando viene alzata automaticamente stringe le chele, mentre quando viene abbassata le chele si allargano. SENSORI Il nostro robot riesce a funzionare utilizzando solamente 3 sensori: due di luminosità riflessa per seguire la linea ed un sensore di distanza per rilevare gli ostacoli lungo il suo cammino. Inizialmente era stato considerato anche un bumper, poi scartato per problemi di dimensioni. SENSORE DI LUCE Il sensore di luce è composto da una foto resistenza e da un led rosso. Una foto resistenza è un componente che varia la sua resistenza a seconda della quantità di luce che la colpisce. Il sensore si basa su questo per restituire un valore a 8 bit che va da 0(oscurità totale) a 1024 ( questo viene poi interpretato dall NXT come un valore da 0 a 100). LED(Foto Diodo) Foto Resistenza

Il sensore può rilevare la luce ambientale oppure la luce riflessa. Nel primo caso il sensore legge direttamente il valore della foto resistenza; nel secondo caso il sensore accende il LED rosso e misura la quantità di luce rossa che viene riflessa. SENSORE DI DISTANZA Emettitore di ultrasuoni Rilevatore Il sensore di distanza utilizza gli ultrasuoni per rilevare la distanza dagli oggetti. Un occhio del sensore è l emettitore di ultrasuoni, l altro occhio è il rilevatore. L emettitore invia un segnale, che va avanti fino a rimbalzare su un oggetto. Torna indietro e viene rilevato dal rilevatore; il controller del sensore misura quindi la distanza basandosi sul tempo trascorso tra l invio ed il ritorno del segnale (tramite la classica formula Velocità * Tempo).