Ciao a tutti.
Non so se mi servirà un filtro di kalman su una singola misura per l'imminente mio progetto,
ma intanto l'ho fatto e voglio condividerlo.
Diciamo che con una singola misura è paragonabile alla migliore media galoppante che possiate fare,
oppure ad un filtro passabasso totalmente regolabile,
Ma in ogni caso spero che possa avvicinare al magico filtro di kalman un po' di persone.
(anche se è la v1.0 e ci ho lavorato qualche ora oggi quindi non infamatemi troppo :-P)
Il filtro di Kalman è lo stimatore ottimo dello stato di un sistema nel senso MMSE se fossero note le coovaranze.
Il fatto è che non lo sono mai.
Soprattutto nelle sensor fusion si hanno da settare dei parametri (appunto le coovarianze) del filtro di kalman a sentimento a seconda dell'applicazione e del filtraggio che vogliamo avere.
Il caso tipico è quello del giroscopio e dell'accelerometro per ottenere rollio e beccheggio.
Integrando la velocità angolare del gyro (l'integrale viene fatto a meno di una costante) si dovrebbe ottenere l'angolo, ma il valore diverge amaramente (a meno di usare un Fog da 4k€ ad asse), quindi non è possibile usare il solo gyroscopio.
Se invece si usasse il solo accelerometro per ottenere con l'arcotangente , dalla misura della componente di accelerazione di gravità, l'angolo di rollio e beccheggio, saremo disturbati dalla dinamica del moto del : robot/quadricottero/ecc a seconda delle accelerazioni angolari date dai cambi di traiettoria che falserebbero la misura.
Il filtro di kalman usato nelle imu usa un predittore dato dalla misura della velocità angolare, quindi è pronto ed azzera la deriva con la misura della componente di gravità più filtrata e quindi lenta per evitare i disturbi del moto, stiamado il bias.
Una sensor fusion geniale e già parecchio diversa dall'approccio classico universitario(il mio) che prevede di avere le matrici del sistema lti, quindi un predittore ecc diverso per ogni applicazione.
(come se riuscisse ad anticipare l'andamento perché conosce il comportamento di ogni sistema)
Diciamo che lascio a voi l'opinione su questo test di libreria secondo me interessante e più intuitivo di altri filtri con le giuste considerazioni che mi aiuterete a fare.
Poi lo potrei anche tradurre..
.
Un saluto a tutti!
PS: l'ho istanziato con NS in previsione della misura del tempo di volo su un anemometro ad ultrasuoni.
KalmanOne.zip (168 KB)