18.08.2013 Views

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

void load_gains(int d, char *fname);<br />

... avvio di HARTIK ...<br />

rho = set_rho(int d, float rho, int seekmode);<br />

set_prediction_step(int n);<br />

Come si può notare, la prima operazione da fare è l'inizializzalizzazione del<br />

sottosistema costituito dal predittore, o meglio, dalla batteria di predittori.<br />

init_kalman() serve appunto a definire quanti filtri indipendenti e in parallelo si<br />

desidera utilizzare, col paramentro nvi, e l'ordine del modello di ciascun filtro<br />

(orders è un vettore contenente le dimensioni dei singoli filtri). Ora si può<br />

procedere con la lettura dei guadagni che, come qualsiasi accesso ai file, deve<br />

essere effettuata prima dell'avvio del sistema real-time. Si deve richiamare la<br />

funzione load_gains() per ciascun filtro della batteria, in modo da caricare i<br />

guadagni della dimensione corretta. Infine, le funzioni set_rho() e<br />

set_prediction_step(), che possono invece essere chiamate sia prima che dopo<br />

l'avvio di HARTIK, servono rispettivamente ad impostare il ρ iniziale e i relativi<br />

guadagni ed a specificare il numero di step in avanti ai quali effettuare le<br />

previsioni che verranno memorizzate nel buffer. In effetti, al limite, la libreria<br />

potrebbe essere utilizzata appieno anche senza avviare HARTIK, in quanto è<br />

costituita da semplici funzioni che non richiedono elaborazione real-time.<br />

La seconda modalità di inizializzazione, l'inizializzazione da file, avviene<br />

chiamando una sola funzione, nel seguente modo:<br />

void init_kalman_subsystem(char *fname);<br />

La funzione si preoccupa di impostare il sistema, effettuando i medesimi<br />

step visti in precedenza, utilizzando i parametri specificati nel file fname.<br />

Per poter funzionare correttamente, il file di inizializzazione, che è un<br />

normalissimo file di testo, deve avere la struttura illustrata al paragrafo 5.3.4.<br />

144

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

Saved successfully!

Ooh no, something went wrong!