Go Down

Topic: Filtro di Kalman + Self Balancing (Read 3206 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy