Ciao a tutti,
devo realizzare un robot, per un progetto universitario, in grado di seguire una linea nera tracciata per terra. Ho realizzato tutto il sistema HW ed anche il SW senza problemi ma un vincolo che mi è stato dato mi crea qualche problema per l'ottimizzazione: posso avere solo due sensori per individuare la linea (non meno e non di più).
So che per ottimizzarne il funzionamento, quindi farlo seguire in modo più fluido la linea, è utile implementare l'algoritmo PID ma tutti gli esempi che ho trovato utilizzano più di due sensori.
Che soluzione potrei utilizzare?
Grazie mille
bomba94:
Che soluzione potrei utilizzare?
Quello dei due sensori è un vincolo stupido in quanto non ti permette di ottimizzare il funzionamento del line follower, la cosa esclude anche l'uso del pid per il quale servono almeno cinque sensori analogici e si analizza il relativo livello di luminosità.
Con solo due sensori puoi solo montarli in modo che si trovano esattamente ad un paio di mm rispetto ai lati della linea da seguire e ragionare "brutalmente" sullo stato luce/buio implementando una semplice macchina a stati che in base alla condizione decide se andare dritto oppure sterzare per tenere la linea al centro.
Alla fine il tuo LF sarà un oggetto che oscilla molto attorno alla linea perché con solo due sensori non è possibile fare meglio, a meno che non "bari" e usi una coppia di sensori per mouse ottico 
astrobeed:
... a meno che non "bari" e usi una coppia di sensori per mouse ottico 
Purtroppo barare non mi è possibile perchè i pezzi per costruire il LF mi sono stati forniti dal professore in università, quindi ho un vincolo pure su quelli
bomba94:
Purtroppo barare non mi è possibile perchè i pezzi per costruire il LF mi sono stati forniti dal professore in università, quindi ho un vincolo pure su quelli
Che sensori sono, link al datasheet ?
Vediamo se è possibile tirare fuori un coniglio dal cappello. 
I sensori sono questi: http://www.seeedstudio.com/wiki/index.php?title=Twig_-_Line_Finder
Grazie mille per l'aiuto che mi stai dando
La linea ha caratteristiche precise ?
Intendo dire, e' una linea di larghezza costante oppure puo essere qualsiasi linea disegnata con pennarelli diversi ?
Perche' se e' di larghezza costante, forse si puo usare un trucchetto, posizionando i due sensori in modo che "vedano" circa un terzo della linea (sui due bordi esterni), e facendogli leggere i valori analogici ... se il robot non viaggia troppo velocemente, dovrebbe essere possibile implementare qualche algoritmo che sfrutti la variazione proporzionale di segnale quando il centro della linea si scosta dal centro dei due sensori (di sicuro non un PID, ma almeno qualcosa che cerchi di compensare le oscillazioni ... ma qui l'esperto in algoritmi e' Astro, se esiste una possibilita' del genere, lo sa di sicuro meglio di me)
bomba94:
I sensori sono questi: http://www.seeedstudio.com/wiki/index.php?title=Twig_-_Line_Finder
Ecco, gia averli montati in quel modo, ci vedo una difficolta' di tipo meccanico, se la linea fosse troppo stretta, non si potrebbe montarli sufficentemente vicini ... ma proprio quelli doveva darti ? ... non te li lascia modificare, suppongo ...
EDIT: oppure ha fatto il bast ... ehm ... cattivello (:P) e li ha scelti proprio per creare piu difficolta' ?
Esatto, probabilmente ce li ha dati così per rendere le cose più difficili!
Di conseguenza non posso nemmeno modificarli
In compenso la linea è fatta con nastro isolante nero da 1.5 cm, quindi ha caratteristiche costanti
bomba94:
I sensori sono questi: http://www.seeedstudio.com/wiki/index.php?title=Twig_-_Line_Finder
Niente da fare, come temevo sono sensori esclusivamente digitali ON/OFF, se erano analogici qualcosa si poteva fare.