Domanda

Mi interessa, come è il doppio ingresso in un setup sensore fusioning in un filtro di Kalman modellato?

Dire per esempio che si dispone di un accelerometro e un giroscopio e si vuole presentare il "livello di orizzonte", come in un aereo, un buon demo di qualcosa di simile qui.

Come si fa effettivamente raccogliere i due sensori proprietà positive e ridurre al minimo il negativo?

È modellata nella matrice di osservazione del modello (di solito simboleggiata dal capitale H)?


Nota: Questa domanda è stato chiesto anche senza alcuna risposta a math.stackexchange.com

È stato utile?

Soluzione

Di solito, il problema fusione sensore è derivata dalle teorema di Bayes. In realtà si dispone che la stima (in questo caso il livello di orizzonte) sarà una somma ponderata dei vostri sensori, che è caratterizzata dal modello del sensore. Per i sensori doppi, si hanno due scelte comuni: modello un sistema a due sensori e trarre il guadagno di Kalman per ciascun sensore (utilizzando il modello di sistema come predittore), o eseguire due fasi di correzione utilizzando modelli di osservazione differenti. Si dovrebbe dare un'occhiata a bayesiana predittori (un po 'più generale di Kalman Filter) che è appunto derivata da minimizzare la varianza di una stima, in due diverse fonti di informazione. Se si dispone di una somma ponderata, e ridurre al minimo la varianza della somma, per due sensori, allora si ottiene il guadagno di Kalman.

Le proprietà del sensore può essere "visto" in due parti del filtro. In primo luogo, si ha la matrice di errore per le vostre osservazioni. Questa è la matrice che rappresenta il rumore nell'osservazione sensori (si presume pari a zero rumore gaussiano medio, che non è un troppo grande presupposto, dato che durante la calibrazione, è possibile ottenere un rumore medio zero).

L'altra matrice importante è la matrice di covarianza osservazione. Questa matrice si dà una panoramica su quanto è buono è il sensore a dare un servizio di informazione (informazione che significa qualcosa di "nuovo" e non dipendente da altri sensori di lettura).

A proposito di "raccolta le caratteristiche buono", quello che si dovrebbe fare è effettuare una calibrazione buona e la caratterizzazione del rumore (che è ok farro?) Dei sensori. Il modo migliore per ottenere un filtro di Kalman a convergere è quello di avere un buon modello di rumore per i sensori, e che è al 100% sperimentale. Provate a determinare la varianza per il sistema (dont sempre schede di fiducia).

La speranza che aiuta un po '.

Altri suggerimenti

Il tasso di misure giroscopio di variazione dell'angolo (ad esempio in radianti al secondo), mentre da accelerometro lettura è possibile calcolare l'angolo stesso. Ecco un modo semplice di combinare queste misure:

In ogni giroscopio lettura ricevuto:

angle_radians+=gyro_reading_radians_per_sec * seconds_since_last_gyro_reading

In ogni accelerometro lettura ricevuto:

angle_radians+=0.02 * (angle_radians_from_accelerometer - angle_radians)

La costante 0,02 è per la sintonizzazione - seleziona il compromesso tra reiezione del rumore e la reattività (non si può avere entrambi allo stesso tempo). Dipende anche dalla precisione di entrambi i sensori, e gli intervalli di tempo in cui sono ricevute nuove letture.

Queste due linee di codice implementare un semplice filtro (scalare) Kalman 1-dimensionale. Si presuppone che

  • giroscopio ha molto a basso rumore rispetto al accelerometro (vero con la maggior parte dei sensori di tipo consumer). Perciò non modello di rumore giroscopio affatto, ma invece utilizziamo giroscopio nel modello di transizione di stato (di solito indicata con F).
  • accelerometro letture vengono ricevuti generalmente intervalli tempo regolari e accelerometro rumorosità (solitamente R) è costante
  • angle_radians è stato inizializzato con una stima iniziale (f.ex mediando angle_radians_from_accelerometer nel corso del tempo)
  • quindi anche stimare covarianza (P) ed ottimale guadagno Kalman (K) sono costanti, il che significa che non è necessario mantenere stima covarianza in una variabile affatto.

Come si vede, questo approccio è semplificata. Se le ipotesi di cui sopra non sono soddisfatte, si dovrebbe imparare un po 'di teoria del filtro di Kalman, e modificare il codice di conseguenza.

Horizon line è G' * (u, v, f) = 0, dove G è un vettore di gravità, v immagine ue centrato coordinate ef lunghezza focale. Ora pro e contro di sensori: giroscopio è super veloce e preciso ma derive, accelerometro è meno accurato ma (se calibrata) ha lo zero polarizzazione e non deriva (proposta senza accelerazione tranne gravità). Essi misurano cose diverse - accelerometro accelerazione misure e quindi orientamento rispetto al vettore di gravità, mentre misure giroscopio velocità di rotazione e quindi la variazione dell'orientamento. Per convertirlo in un orientamento deve integrare i suoi valori (per fortuna può essere campionata ad alte fps come 100-200). quindi filtro di Kalman che dovrebbe essere lineare non è applicabile a giroscopio. Per ora possiamo solo semplificano fusione sensore come una somma pesata di letture e le previsioni.

È possibile combinare due letture - accelerometro e giroscopio e il modello di previsione integrata utilizzando pesi che sono inversamente proporzionali ai dati varianze. Avrete anche usare la bussola di tanto in tanto in quanto accelerometro non dice molto circa l'azimut ma credo che è irrilevante per il calcolo di una linea di orizzonte. Il sistema dovrebbe essere sensibile e preciso e per questo scopo ogni volta che cambia orientamento veloci i pesi per giroscopio dovrebbe essere grande; quando il sistema si stabilizza e la rotazione arresta i pesi per accelerometro saliranno consentendo una maggiore integrazione di zero letture di polarizzazione e uccidendo la deriva dal giroscopio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top