ROBOTICA E MATEMATICA GEOGEBRA e i ROBOT Donatella Merlo (Scuola di Robotica) Ada Sargenti (La Casa degli Insegnanti) Riva del Garda-Discovery 2012
In attesa che I robot siano interfacciabili con il software GeoGebra possiamo utilizzare lo stesso per Simulare il comportamento del robot ed individuare i parametri necessari ad uno specifico movimento Elaborare i dati del movimento acquisiti con un altro software (NXT-G)
La ricerca a livello internazionale Tra le caratteristiche future previste per GeoGebra c è anche quella dell interfacciamento con i robot Se ne occupa a livello di team internazionale Peter Samuels (Università di Birmingham - UK) I file da noi prodotti si sono ispirati ai suoi pubblicati sul vecchio wiki di GeoGebra http://www.geogebra.org/en/wiki/index.php/robotics
Questi materiali Saranno invece disponibili sulla piattaforma Moodle della Casa degli Insegnanti accessibile a questo indirizzo: http://lacasadegliinsegnanti.wizshelf.org/ course/view.php?id=31 e prossimamente anche su GeoGebraTube a questo indirizzo: http://www.geogebratube.org/
Simulare il comportamento del robot A seconda del livello scolare: Il docente può utilizzare file già predisposti chiedendo agli studenti di scegliere il tipo di movimento da realizzare e di impostare i parametri necessari utilizzando i file GeoGebra. Gli studenti stessi possono progettare e realizzare il file GeoGebra che consente di simulare il movimento del robot studiando il problema dal punto di vista geometrico ed algebrico.
Primo problema: come fa ad arrivare?? Il robot non è un punto geometrico ma un sistema rigido, che si sposta attraverso il movimento di due ruote motrici
I movimenti da analizzare sono quindi di due tipi: Traslazione Rotazione intorno ad un punto, che può essere una delle due ruote Fissata la ruota sinistra, il robot gira a destra Fissata la ruota destra, il robot gira a sinistra oppure il punto medio dell asse tra le ruote Le due ruote sono entrambi mobili, se una ruota gira in un senso e l altra nel senso opposto, il robot gira su se stesso
Traslazione La simulazione con GeoGebra consente, impostando la lunghezza del percorso, di scoprire il numero di rotazioni del motore necessarie per realizzarlo. 8
La simulazione con GeoGebra Variabili, parametri, equazioni Riva del Garda-Discovery 2012 9
Cosa bisogna sapere del robot s 0 spazio percorso dalla ruota in un giro completo s 0 t0 tempo impiegato dalla ruota per fare un giro completo
Cosa bisogna sapere del robot θ 0 angolo di rotazione del robot dopo un giro completo di una ruota θ 0 = 84,5
Cosa bisogna sapere del robot Per la rappresentazione grafica La posizione delle due ruote motrici, S sinistra e D destra, rispetto alla ruota libera P (pivot) La posizione del punto medio dell asse fra le due ruote S (12.5, 5.525) P (0,0)
Una scelta nella simulazione S ruota sinistra P ruota pivot Punto medio tra le ruote motrici D ruota destra Quale punto di riferimento prendere per lo spostamento? Abbiamo scelto P immaginando che in esso sia inserita una matita che lascia la traccia del passaggio (nei file traccia rossa)
Come si realizza la simulazione per la traslazione Fissato il punto di arrivo A (PA=spazio), è necessario determinare: quanti giri delle due ruote sono necessari perché il pivot P arrivi ad A giri_2_ruote = spazio/s 0
Come si realizza la simulazione per la traslazione Inoltre è necessario calcolare: quanto tempo impiega ad arrivare in A durata = giri_2_ruote t 0
I controlli in GeoGebra Tempo: il suo variare agisce sul movimento o meno del robot Si ottiene con uno slider che varia tra 0 e 5 sec Inoltre bisogna inserire un controllo che: Faccia muovere il robot fino ad A Lo faccia star fermo per tutto il tempo successivo al raggiungimento del traguardo
Come si ottiene il controllo? Ad esempio con SE[condizione, allora,altrimenti] Eventualmente possono essere inseriti due SE nidificati In GeoGebra ad esempio se si vuole che un numero n assuma valore 1 se una variabile t è positiva, -1 se è negativa, 0 se è nulla, si può scrivere n=se[t>0,1,se[t<0,-1,0]]
Un metodo alternativo Nei file di Peter Samuels è stato invece utilizzato il segnante (sgn) che opera nello stesso modo. Nei casi più complessi è opportuno usare sgn(variabile) Vale 1 se variabile>0 Vale -1 se variabile<0 Vale 0 se variabile=0 Per l esempio precedente sarebbe n = sgn(t)
Uso del comando condizionale SE Con X 1 indichiamo lo spazio variabile percorso nella traslazione X 1 =SE[Tempo<durata,s 0 /t 0 Tempo,spazio] s 0 /t 0 =velocità; Tempo: variabile s 0 /t 0 Tempo=velocità Tempo=distanza variabile da punto partenza
Rotazione di centro S La simulazione con GeoGebra ci consente di scoprire quante rotazioni del motore sono necessarie per ottenere un determinato angolo. 20
Come si realizza la simulazione per la rotazione intorno alla ruota S Fissato il punto di arrivo A (angolo OSA=β), è necessario determinare: quanti giri della ruota destra D sono necessari perché il pivot P arrivi ad A giri_d (slider) giri_d θ 0 = β è l angolo di arrivo θ 0 è l angolo di cui ruota il robot quando la ruota fa un giro
Come si realizza la simulazione per la rotazione intorno alla ruota S Per la programmazione in GeoGebra è necessario calcolare: quanto tempo impiega ad arrivare in A durata = giri_d. t 0 tempo per fare tutta la rotazione numero rotazioni della ruota tempo impiegato per fare una rotazione
I comandi in GeoGebra θ 2 è l angolo variabile in funzione del tempo θ 2 =SE[Tempo<durata,θ 0 /t 0 Tempo,giri_D θ 0 ] θ 0 /t 0 è la velocità angolare, che moltiplicata per Tempo variabile, dà l angolo di rotazione ad ogni istante giri_d θ 0 = β è l angolo di arrivo
I comandi in GeoGebra Un qualsiasi punto Q del robot, di coordinate iniziali (x 1, y 1 ), dovrà allora ruotare intorno a S di un angolo θ 2 (variabile) Questo si ottiene con il comando Q=Ruota[(x 1, y 1 ), θ 2, S] Coordinate iniziali Angolo di cui deve ruotare Centro di rotazione
Allora cosa accade? Il generico punto Q del robot descrive un arco di circonferenza di centro S Gli angoli Q 1 SQ misurano tutti θ 2 (Q 1 è la posizione iniziale di Q)
Come opera la rotazione? Al termine l asse del robot, inizialmente coincidente con l asse x, è ruotato dello stesso angolo con cui è stato ruotato P.
Rototraslazione L ultima osservazione sull asse ci consente di creare una simulazione per raggiungere da O un qualsiasi punto A del piano Potremo farlo: Prima con una opportuna rotazione che porti la retta dell asse del robot a passare per A Poi con una traslazione fino ad A
Rototraslazione la simulazione con GeoGebra consente, scelto un punto sul piano, di determinare il numero di rotazioni delle ruote per i due movimenti 28
Alcune scelte Se A è nel semipiano positivo delle ordinate possiamo scegliere come centro di rotazione: La ruota sinistra S (con rotazione verso destra) Se A è nel semipiano negativo delle ordinate possiamo scegliere come centro di rotazione: La ruota destra D (con rotazione verso sinistra) La scelta del punto medio fra le due ruote è invece indipendente dalla posizione di A Come è ininfluente il verso di rotazione
I comandi Essendo due i movimenti, i comandi risultano un po più complessi Ci dovranno essere due valori distinti di giri di ruote e per le durate Quelli per la rotazione Quelli per la traslazione θ 2 viene definito come prima per la rotazione
Composizione dei movimenti La traslazione deve iniziare solo dopo che si è conclusa la rotazione, quindi Fino a che non è trascorso il Tempo necessario per la rotazione (durata rot ) la traslazione è nulla Ovvero Se Tempo<durata rot Allora X 1 =0
Composizione dei movimenti Quindi inizia la traslazione fino a quando il Tempo è inferiore alla somma delle due durate (rotazione e traslazione) Ovvero Se Tempo<durata rot +durata trasl Per tutto il tempo previsto per la traslazione Allora X 1 = v 0 (Tempo-durata rot ) s 0 /t 0
Composizione dei movimenti Alla fine P si ferma nella posizione di A X 1 = s 0 giri trasl In sintesi: X 1 =Se[Tempo<durata rot,0,se[tempodurata rot -durata trasl 0, v 0 (Tempo-durata rot ), s 0 giri trasl ]]
Allora Per un qualsiasi punto Q con coordinate iniziali (x 1, y 1 ) possiamo scrivere: Q = Ruota[((x 1, y 1 ), θ 2, S] +??? Qui ci blocchiamo perché la traslazione X 1 avviene lungo l asse x, mentre abbiamo bisogno che avvenga lungo la retta dell asse del robot
Osserviamo Se ruotiamo asse x di θ 2 intorno all origine troviamo una retta parallela all asse del robot (angoli verdi alterni interni congruenti) Per riportare il nuovo X 1 sull asse del robot, prendiamo come riferimento P e la sua posizione (x P, y P ). Sommando queste coordinate a quelle di X 1 ruotato, riportiamo l asse del robot nella posizione corretta.
Operativamente però... È conveniente traslare i punti in modo che la ruota S coincida con l origine farli ruotare intorno all origine Traslarli nuovamente con una traslazione inversa Applicare la rotazione sulla retta di X 1 In questo modo le rotazioni hanno tutte come centro l origine
Per capire meglio Rotazione intorno a S (x 0, y 0 ). Rotazione intorno a O dopo che i punti sono stati traslati di (-x 0, -y 0 ).
Per capire meglio Rotazione intorno a O Punti traslati di (-x 0, -y 0 ). Nuova traslazione di (x 0, y 0 ).
Sintassi del comando Ruota Se il centro di rotazione coincide con l origine degli assi, non è necessario inserire il centro di rotazione. Q=Ruota[(x 1, y 1 ), θ 2 ] Coordinate iniziali Angolo di cui deve ruotare 39
L equazione Se (x 0, y 0 ) sono le coordinate della ruota sinistra: P= Ruota[(-x 0, -y 0 ), θ 2 ] + (x 0, y 0 ) + Ruota[(X 1, 0), θ 2 ] rotazione di P traslato traslazione rotazione Per qualsiasi punto Q (x 1, y 1 ) si fa riferimento alla traslazione di P e dunque l equazione è Q = Ruota[(x 1, y 1 ), θ 2 ] + P
Rototraslazione 2 In questo caso la rotazione avviene con centro nel punto medio tra le due ruote sull asse, questo semplifica la simulazione. 41
Elaborare i dati Aspetto interessante dal punto di vista matematico è quello dell elaborazione dei dati acquisiti ad esempio con NXT Infatti, mentre NXT fornisce solo dati e grafico, con GeoGebra sono possibili operazioni: di fitting di analisi del movimento (velocità, accelerazione) di analisi numerica dei dati in generale utilizzando il foglio di calcolo
Data logging Blocchi per il data logging il primo registra i dati del sensore di rotazione del motore che si trasformano in un grafico spazio/tempo il secondo termina il data logging il processo avviene in parallelo 43
I grafici in tempo reale Traslazione 44
I grafici in tempo reale Rotazione 45
I grafici in tempo reale Rototraslazione (centro sulla ruota) 46
I grafici in tempo reale Rototraslazione (centro su punto medio asse) 47
I dati del datalogging in GeoGebra 48
File di NXT (.log) per rototrasla intorno centro
Il file importato in un foglio di calcolo (.txt)
Si copiano i dati nel foglio di calcolo di GeoGebra
Il grafico in GeoGebra
Fitting della prima parte del grafico equazione della curva
Che storia è? 54