Pages: [1]   Go Down
Author Topic: Filtro di Kalman + Self Balancing  (Read 2448 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Edison Member
*
Karma: 1
Posts: 1353
Here we go!!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

L'impossibile...richiede solo piu' tempo!

Germany
Offline Offline
Edison Member
*
Karma: 1
Posts: 1353
Here we go!!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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!!!
« Last Edit: January 26, 2011, 12:45:37 pm by f.schiano » Logged

L'impossibile...richiede solo piu' tempo!

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

occhio ai limiti imposti dalla ram di arduino.
forse una memoria (flash / rom / quelchevuoi) esterna può aiutare
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Germany
Offline Offline
Edison Member
*
Karma: 1
Posts: 1353
Here we go!!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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!!! smiley...forse da quelle operazioni non esce una matrice ma bensì un numero!!! chissà!!!
Logged

L'impossibile...richiede solo piu' tempo!

Milan
Offline Offline
Edison Member
*
Karma: 1
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Community robotica / programmazione Arduino
www.gioblu.com

Germany
Offline Offline
Edison Member
*
Karma: 1
Posts: 1353
Here we go!!!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Potrebbe anche essere una 2*2, ma come la si calcola sperimentalmente?
Logged

L'impossibile...richiede solo piu' tempo!

Torino, Italy
Offline Offline
Sr. Member
****
Karma: 2
Posts: 312
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: