LEZIONI E FORMAZIONE DAI DOCENTI PER I DOCENTI

Scopri WeTurtle, la community di educatori dove trovare e condividere risorse innovative

home - progetti - L'inseguitore di linea con Lego Mindstorms EV3 - Algoritmo di inseguimento proporzionale

Algoritmo di inseguimento proporzionale

Tempi

Tempo stimato per la lezione in classe: 1.00 h

Strumenti

  • 1 Computer ogni 3 studenti (circa)
  • 1 Kit LEGO® Mindstorms® EV3 Education (ogni 3 studenti)
  • Software LEGO® Mindstorms® EV3 Education
  • Un telo bianco su cui viene predisposto un percorso utilizzando, ad esempio, il nastro isolante nero da 1cm. Ricordatevi che più le curve saranno strette, più sarà complesso programmare il robot e trovare algoritmi adeguati per l’inseguimento della linea!

Ancora non sei iscritto? Diventa una tartaruga digitale con centinaia di docenti da tutta Italia.

ISCRIVITI SUBITO!

Linee guida delle attività

Si potrebbe partire con questa sfida: migliorare l’algoritmo di controllo! Il robot oscilla molto sopra la linea con l’algoritmo ON-OFF, come possiamo vedere a questo video:


Si può evitare (o diminuire) questa oscillazione?
Si può chiedere agli studenti a che cosa è dovuta, e come mai il robot si comporta in questo modo (lasciando sempre il tempo di riflettere, ipotizzare e sperimentare).

Il solito piatto d’argento…

Il robot oscilla perché l’algoritmo ON-OFF prevede solo 2 stati, indipendenti dal valore rilevato dal sensore: gira a destra o gira a sinistra, sempre della stessa quantità! Ma i valori rilevati potrebbero essere infiniti, come si può intuire dalla figura qui sotto, e quindi le correzioni da applicare al robot possono divenire di ordine “infinito”.

La correzione cioè, dovrebbe essere proporzionale all’errore che il robot sta commettendo!

Che cosa significa errore commesso dal robot?

L’errore (indicato con e) non è altro che la differenza tra il valore acquisito dal sensore, e il valore desiderato (la media tra bianco e nero):

                                          e = Valore_desiderato – Valore_acquisito

La correzione del robot (cioè quanto sterza) dovrebbe essere proporzionale a questo errore:

                                 Sterzata = Kp*( Valore_desiderato – Valore_acquisito)

Dove Kp rappresenta il coefficiente di proporzionalità a cui va assegnato un valore da trovare sperimentalmente.

In ambiente EV3 Mindstorms si potrebbe tradurre tutto con uno schema di questo tipo:

Nella figura sopra la costante Kp è stata impostata a 2.2, ma questo valore non è univoco!

Va trovata dagli studenti: dipende dalla velocità a cui si muovere il robot, da quanto è spessa la linea del percorso, dal tono di bianco del telo, dalla luce presente nella stanza. Insomma, gli studenti dovranno “smanettare” un po’ per trovare il giusto valore per questa costante, che dovrebbe essere compreso tra 0.5 e 3 (nel caso di un progetto di questo tipo).

Consiglio.
Sarebbe interessante documentare il comportamento del robot in base ai diversi Kp assegnati.
Per trovare il valore migliore vale la pena consigliare agli studenti di impostare inizialmente 1, e poi procedere modificano di circa 0.2 la costante, fino ad arrivare al valore che li convince di più.

L’effetto che si ottiene si può osservare in questo video:


Vuoi leggere la lezione quando vuoi, anche offline?



Hai letto la lezione? Che cosa ne pensi? Lascia un commento qui sotto!