Go Down

Topic: Filtro di Kalman + Self Balancing (Read 3053 times) previous topic - next topic

f.schiano

Ciao a tutti, insieme a dei miei colleghi di università stiamo cercando di implementare un robottino che sia self-balanced (autobilanciato) e implementare un filtro di kalman nell'algoritmo che lo regola.

Mi sono imbattuto già nel primo problema, come faccio a trovare le matrici di covarianza dell'errore per quanto riguarda un sensore IR del genere:
SENSORE SHARP

Il cui datasheet è questo:
Datasheet sensore sharp

So che probabilmente dovrebbe essere legato all'accuratezza del sensore, ma ho spulciato un pò il datasheet e non ve ne è traccia!!!

Qualcuno può aiutarmi ? GRAZIE
L'impossibile...richiede solo piu' tempo!

f.schiano

#1
Jan 26, 2011, 06:38 pm Last Edit: Jan 26, 2011, 06:45 pm by f.schiano Reason: 1
Forse ci sono, ma mi serve una spintarella per capire meglio una cosa!!!

Allora, ci sono due modi per calcolare la matrice di covarianza dell'errore di un sensore:

1)Dall'accuratezza che c'è scritta sul datasheet
2)Sperimentalmente

Visto che non posso percorrere la prima strada, ho deciso di intraprendere la seconda strada e vi spiego come penso che si faccia e il dubbio che mi è sorto!

Ho capito che per calcolare la covarianza dell'errore di un sensore sperimentalmente devo effettuare tante misurazioni: ad esempio diciamo che ne faccio 100. Dopo avere fatto queste misurazioni (chiamiamole zi) le metto in un vettore Z. Quindi avrò:
Z=(z1,z2,z3,.....,z100)T
Calcolo quindi la media di questi valori e la chiamo zm.

Per calcolare la "matrice" di covarianza C uso poi la seguente formula:


In questo modo avrò una matrice 100*100 che mi rappresenta la mia matrice di covarianza? Come posso usare una matrice di covarianza 100*100 ? o addirttura 1000*1000? (se faccio ad esempio 1000 misurazioni)

Fatemi sapere grazie!!!
L'impossibile...richiede solo piu' tempo!

lesto

occhio ai limiti imposti dalla ram di arduino.
forse una memoria (flash / rom / quelchevuoi) esterna può aiutare
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

f.schiano

La mia più che altro era una domanda perchè io so che la matrice che della covarianza dell'errore di misura dovrebbe essere una 4*4 nel mio caso!!!

Però non so come fare uscire da quella matrice una 4*4!!! :)...forse da quelle operazioni non esce una matrice ma bensì un numero!!! chissà!!!
L'impossibile...richiede solo piu' tempo!

gbm

dai un occhio a questo codice:
http://www.gioblu.com/tutorials/programmazione/98-filtro-di-kalman-con-arduino

qui la matrice di covarianza è una 2*2
Community robotica / programmazione Arduino
www.gioblu.com

f.schiano

Potrebbe anche essere una 2*2, ma come la si calcola sperimentalmente?
L'impossibile...richiede solo piu' tempo!

http://www.varesano.net/blog/fabio/initial-implementation-9-domdof-marg-imu-orientation-filter-adxl345-itg3200-and-hmc5843-a

Go Up