Perché ho bisogno di un filtro Kalman?


61

Sto progettando un veicolo aereo senza pilota, che includerà diversi tipi di sensori:

  • Accelerometro a 3 assi
  • Giroscopio a 3 assi
  • Magnetometro a 3 assi
  • sensore dell'orizzonte
  • GPS
  • ultrasuoni rivolti verso il basso.

Un mio amico mi ha detto che avrò bisogno di mettere tutti questi dati del sensore attraverso un filtro Kalman, ma non capisco perché. Perché non posso semplicemente inserirlo direttamente nel mio micro controller. In che modo il filtro Kalman mi aiuta con i miei dati del sensore?

Risposte:


52

Si fa a collegare tutti questi sensori direttamente ad un microcontrollore. Il filtro Kalman non è un filtro elettronico come un filtro LRC che passa tra i sensori e il microcontrollore. Il filtro Kalman è un filtro matematico implementato come routine software all'interno del microcontrollore.

I sensori che hai elencato danno al microcontrollore 14 o 15 numeri grezzi ogni volta che vengono tutti aggiornati.

Quando volo un piccolo aereo, quello che voglio veramente sapere è la sua posizione e orientamento e quanto è distante dal suolo - 7 numeri.

Ho bisogno di qualcosa che mi dia quei 7 numeri.

Idealmente voglio una nuova stima di quei 7 numeri ogni volta attraverso il mio circuito di controllo. Gli aggiornamenti una volta al secondo che ottengo dal mio GPS economico non sono abbastanza veloci. (Persone con quale frequenza il mio circuito di aggiornamento quadricottero output-sense-calcola-output deve rimanere stabile? Mi sta dicendo che anche 50 volte al secondo non sarà abbastanza veloce).

In qualche modo dovrò ridurre quei 14 o 15 numeri grezzi che ho, alcuni dei quali vengono aggiornati solo occasionalmente, in (stime di) i 7 numeri che voglio davvero.

Come ha sottolineato Josh, ci sono molti modi ad hoc per convertire quei numeri grezzi in dati utilizzabili. Qualsiasi routine che converte 15 numeri in 7 numeri può essere descritta come un "filtro".

Non è necessario utilizzare il filtro ottimale. Ma utilizzerai un qualche tipo di filtro, ovvero qualcosa che converte dai 15 numeri di dati grezzi che hai in (stime di) i 7 numeri che desideri davvero.

Il filtro Kalman è, in alcune condizioni, il filtro "ottimale", il modo migliore per convertire quei dati grezzi nei 7 numeri che voglio davvero.

Potrebbe essere necessario meno lavoro da parte tua per utilizzare un filtro Kalman che qualcun altro ha già scritto e sottoposto a debug, piuttosto che scrivere qualche altro filtro da zero, eseguirne il debug e continuare ad aggiungere elementi fino a quando non sarà utilizzabile, un filtro che inevitabilmente si rivelano non ottimali.


28

La risposta breve e snella è "provalo senza." La risposta migliore è un esempio: quando i tuoi accellerometri dicono che sei a 10 gradi dalla verticale, ma il tuo giroscopio dice che non hai ruotato lontano dalla verticale, e i tuoi magnetometri segnalano un offset di 30 gradi da nord ma il tuo giroscopio dice 32 gradi .. Qual è la direzione e l'inclinazione attuali?

Probabilmente ti verranno in mente un milione di modi ad hoc che sembrano funzionare in un esempio, ma falliscono in altri. Il filtro Kalman (Extended Kalman Filter (EKF) per questo compito!) Ti fornirà un modo rigoroso per rispondere a queste domande. La qualità delle risposte è ancora oggetto di ricerca - anche se il track record del EKF è molto buono - ma almeno tutti saranno d'accordo che cosa le risposte sono .


1
Esattamente la risposta che stavo cercando. "Cosa succederebbe se non uso Kalman Filter". Grazie!
Manav Kataria,

22

I dati del sensore sono rumorosi. Se non lo filtri, il tuo veicolo agirà almeno in modo irregolare se fosse anche abbastanza stabile da volare. Il filtro, tramite un filtro Kalman o altro, può ridurre il rumore se fatto correttamente, migliorando la stabilità a sua volta.

Un filtro Kalman è un filtro particolarmente potente. Prende un modello del sistema e modelli di rumore sia per il sistema che per i sensori. Quindi stima lo stato del veicolo sulla base di una stima dello stato fornita e dei controlli applicati in qualsiasi momento. Questo stato stimato sarà più accurato di quanto riportato dai sensori.


8

Puoi usare anche i filtri antiparticolato. Per l'introduzione di base sui filtri antiparticolato, puoi dare un'occhiata ai video del professor Thrun in Programmazione di un'auto robotica.

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

I filtri antiparticolato sono più robusti e hanno una probabilità molto minore dell'errore di chiusura del circuito, che si verifica comunemente durante l'implementazione di un EKF.

I video descrivono il funzionamento di un filtro antiparticolato.


In generale, le risposte che contengono non più di un collegamento non sono preferite. Se potessi scrivere un paragrafo o due sull'essenza del video, sarebbe bello ..
Manishearth

parla per te. Vedo poco guadagno riaffermando le informazioni in un altro collegamento. Il link può contenere informazioni di cui non ero a conoscenza e che qualcuno non ha bisogno di riscriverlo per farmi conoscere. Posso fare clic e leggere molto facilmente, grazie.
Spiked3

8

Un filtro Kalman è un algoritmo che viene comunemente utilizzato negli UAV per fondere più misurazioni di sensori per fornire una stima "ottimale" della posizione e / o dell'orientamento dell'UAV. Ad esempio, un filtro Kalman può fondere le misure dell'accelerometro, del giroscopio e del magnetometro con una stima della velocità per stimare imbardata, beccheggio e rollio dell'UAV.

Per ulteriori informazioni sui sensori e gli algoritmi utilizzati nella stima dello stato UAV, prova l'articolo autonomo Fondamenti di volo di velivoli senza pilota di piccole dimensioni .

L'articolo si collega anche al codice Matlab che accompagna l'implementazione degli algoritmi di stima dello stato UAV di Kalman Filter descritti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.