13.07.2015 Views

Progettazione e realizzazione di una base robotica bilanciante su ...

Progettazione e realizzazione di una base robotica bilanciante su ...

Progettazione e realizzazione di una base robotica bilanciante su ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.5. Algoritmi <strong>di</strong> controllo 69implementare sistemi <strong>di</strong> controllo anche esterni, come mostrato nella sezione<strong>su</strong>ccessiva.Il software può inoltre essere configurato per inviare perio<strong>di</strong>camente ilvalore <strong>di</strong> alcune variabili <strong>su</strong> <strong>una</strong> delle interfacce seriali, permettendo <strong>di</strong> registrarel’evolvere dei segnali <strong>su</strong> un <strong>di</strong>spositivo esterno. Sono state sviluppatealcune routine MATLAB che permettono <strong>di</strong> salvare i dati ricevuti o produrredei grafici in tempo reale, al fine <strong>di</strong> facilitare le operazioni <strong>di</strong> taratura edebug degli algoritmi <strong>di</strong> controllo.6.5 Algoritmi <strong>di</strong> controlloI controllori progettati, descritti nel capitolo <strong>su</strong>ccessivo, sono stati implementatisia a bordo del robot, eseguendo gli algoritmi <strong>su</strong>l microcontrollore,sia <strong>su</strong> un computer esterno, collegato al robot tramite interfaccia seriale.In particolare, i controllori PID e LQR sono completamente eseguiti dalmicrocontrollore, che riceve i valori delle costanti tramite la shell oppurecaricandoli dalla memoria flash interna. È possibile in ogni momento selezionarequale controllore utilizzare, e l’azione <strong>di</strong> controllo può essere generataanche sommando le azioni <strong>di</strong> <strong>di</strong>versi controllori: si può ad esempio scegliere<strong>di</strong> attivare il controllore PID che mantiene l’equilibrio del robot e il controllorePID che insegue un setpoint <strong>di</strong> velocità, oppure aggiungere del rumoreall’uscita <strong>di</strong> un controllore per osservarne gli effetti. Quest’ultima possibilitàè ad esempio sfruttata per produrre i dati <strong>su</strong> cui viene addestrato l’algoritmo<strong>di</strong> appren<strong>di</strong>mento per rinforzo, descritto nella Sezione 7.3.Il controllore basato <strong>su</strong>l reinforcement learning richiede invece <strong>di</strong> poteraccedere alla politica <strong>di</strong> controllo ottenuta, la cui <strong>di</strong>mensione <strong>di</strong>pende dalnumero <strong>di</strong> variabili <strong>di</strong> stato e dalla <strong>di</strong>scretizzazione degli stati scelta. Unproblema <strong>di</strong> questo genere, in cui si hanno tre variabili <strong>di</strong> stato (angolo, velocitàangolare e velocità lineare) e in cui è richiesta <strong>una</strong> buona risoluzione,fa si che le politiche generate siano troppo ingombranti per essere memorizzateall’interno della memoria del microcontrollore. Si è quin<strong>di</strong> scelto <strong>di</strong>utilizzare un software in esecuzione <strong>su</strong> un computer esterno che, ricevendoperio<strong>di</strong>camente le informazioni relative allo stato del robot, accede allapolitica e sceglie l’azione da eseguire.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!