UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica
UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica
UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica
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