2013-01-08 6 views
11

Molti post parlano del problema della deriva del giroscopio. Alcuni dicono che la lettura del giroscopio ha una deriva, tuttavia altri dicono che l'integrazione ha una deriva.Deriva del giroscopio sui telefoni cellulari

  1. La lettura del giroscopio grezzo ha deriva [link].
  2. L'integrazione ha deriva [link] (risposta 1).

Quindi, conduco un esperimento. Le prossime due figure sono ciò che ho ottenuto. La seguente figura mostra che la lettura del giroscopio non ha alcuna deriva, ma ha l'offset. A causa dell'offset, l'integrazione è orribile. Quindi sembra che l'integrazione sia la deriva, vero? enter image description here

La figura successiva mostra che quando l'offset viene ridotto, l'integrazione non deriva affatto. enter image description here

Inoltre, ho condotto un altro esperimento. In primo luogo, ho messo il cellulare fermo sulla scrivania per circa 10 secondi. Quindi ruotato a sinistra, quindi ripristinare indietro. Quindi a destra e indietro. La seguente figura indica l'angolo abbastanza bene. Quello che ho usato è solo la riduzione dell'offset, quindi l'integrazione.

enter image description here

Quindi, il mio grande problema qui è che forse l'offset è l'essenza della deriva giroscopio (drift integrazione)? È possibile applicare un filtro o un filtro kalman in omaggio per rimuovere la deriva del giroscopio in questa condizione?

Qualsiasi aiuto è apprezzato.

risposta

14

Se la lettura del giroscopio ha "deriva", viene chiamata bias e non deriva.

La deriva è dovuta all'integrazione e si verifica anche se il bias è esattamente zero. La deriva è perché si sta accumulando il rumore bianco della lettura per integrazione.

Per cancellazione deriva, consiglio vivamente il Direction Cosine Matrix IMU: Theory manoscritto, ho implementato fusione sensoriale per Shimmer 2 dispositivi basati su di esso.

(Edit: Il documento è dal progetto MatrixPilot, che da allora è trasferito a Github, e può essere trovato nella sezione Downloads del wiki lì.)

Se si insiste sulla Kalman Filter poi vedere https://stackoverflow.com/q/5478881/341970 .

Perché stai implementando il tuo algoritmo di fusione del sensore?

Entrambi Android (SensorManager sotto Sensor.TYPE_ROTATION_VECTOR) e iPhone (Core Motion) offre il proprio.

+0

Davvero utile, grazie!In realtà, so ben poco del rumore bianco, mi sembra che il rumore bianco abbia un effetto minore sull'integrazione dal terzo diagramma, vero? Quindi la deriva è davvero un problema serio? –

+0

Sì, l'errore può diventare arbitrariamente grande a causa del rumore bianco. Di certo, se hai pregiudizi, la situazione è ancora peggiore :(Ad ogni modo, hai messo in su la tua domanda! – Ali

+0

Apprezzato :) Voglio davvero vedere l'errore dovuto al rumore bianco per avere un senso di come calibrarlo. Devo raccogliere i dati del giroscopio in 1 ora o in altri? –

1

Il caro Ali ha scritto qualcosa che è davvero discutibile e impreciso (sbagliato).

La deriva è l'integrazione del bias. È l'effetto "visibile" del pregiudizio quando si integra.Il rumore - qualsiasi tipo di rumore stazionario - che ha valore zero, di conseguenza ha zero integrale (non parlo dell'integrale di PSD, ma del rumore additivo del segnale integrato nel tempo).

Il bias cambia nel tempo, in funzione della tensione e della temperatura di esercizio. Per esempio. se la tensione cambia (e cambia), il bias cambia. Il pregiudizio non è fisso né "prevedibile". Ecco perché non è possibile eliminare la distorsione usando la sottrazione proposta del bias stimato dal segnale. Anche qualsiasi stima ha un errore. Questo errore si accumula nel tempo. Se l'errore è inferiore, gli effetti del cumulo (la deriva) diventano visibili in un intervallo più lungo, ma esiste ancora.

La teoria dice che un'eliminazione totale di pregiudizi non è possibile, ai giorni nostri. Allo stato dell'arte, nessuno ha ancora trovato un modo per eliminare i magnetometri basati esclusivamente su giroscopi e accelerometri basati su bias, che potrebbero filtrare tutti i pregiudizi.

Android e iPhone hanno limitate implementazioni di algoritmi di eliminazione del bias. Non sono completamente liberi da effetti di bias (ad esempio a piccoli intervalli). Per alcune applicazioni questo può causare gravi problemi e risultati imprevedibili.

+2

"Il rumore - qualsiasi tipo di rumore stazionario - che ha lo zero medio, di conseguenza ha zero integrale". Hai familiarità con il concetto di [passeggiata casuale] (http://en.wikipedia.org/wiki/Random_walk)? O per dirla in un altro modo, se lanci una moneta 100 volte, secondo la tua logica, ottengo esattamente 50 teste e 50 code. capisci il problema? Ti suggerisco di rivedere la tua risposta. – Ali

+0

Probabilmente intendeva dire che anche il valore medio dell'integrale è zero. La deriva è una tendenza sistematica in un processo. Non sono esperto in questo, ma non vedo alcun modo per compensare il rumore integrato. La polarizzazione integrata, d'altra parte, potrebbe essere annullata mediante ricalibrazione al volo basata sulla rilevazione di periodi prolungati di accelerazione angolare quasi zero. –

1

In questa discussione sia Ali che Stefano hanno sollevato due aspetti fondamentali delle derive grazie all'integrazione ideale.

Fondamentalmente zero rumore bianco medio è un concetto idealizzato e anche per tale integrazione del rumore ideale offrono un guadagno più elevato rispetto alla componente di bassa frequenza del rumore, che introduce una deriva a bassa frequenza nel segnale integrato. Teoricamente, il rumore medio zero non dovrebbe causare alcuna deriva se osservato in un tempo considerevolmente lungo, ma l'integrazione praticamente ideale non funziona mai.

D'altra parte, anche un offset CC minore nella lettura (segnale di ingresso) può causare una deriva significativa per un periodo di tempo, se viene eseguita un'integrazione ideale (somma senza perdite). È in grado di accelerare un piccolo dc-offset nel sistema, in quanto l'integrazione ideale ha un guadagno infinito sulla componente CC di un segnale di ingresso. Pertanto, per lo scopo pratico, sostituiamo l'integrazione ideale con un filtro passa-basso il cui limite può essere basso quanto richiesto, ma non può essere zero o troppo basso per scopi pratici.

+0

* "Teoricamente il rumore della media zero non dovrebbe causare alcuna deriva se osservato in un tempo considerevolmente lungo" * Conoscete il concetto di [passeggiata casuale] (https://en.wikipedia.org/wiki/Random_walk)? Ti suggerisco di rivedere la tua risposta. – Ali

+0

Sono d'accordo che ci sarà una fluttuazione come una passeggiata casuale ma se il rumore è "veramente" un rumore medio zero e se osserviamo per una durata abbastanza lunga idealmente fino all'infinito il segnale integrato dovrebbe mostrare una uguale fluttuazione di quantità su zero. Tuttavia, nessun rumore casuale simulato è il rumore medio zero ideale, quindi in pratica o anche in simulazione posso aspettarmi una deriva (la simulazione di Ezequiel è piaciuta). In una scala temporale breve possiamo vedere il segnale alla deriva, ma su una scala temporale abbastanza lunga ovviamente fluttuerà sullo zero piuttosto che si sta allontanando dallo zero continuamente. – abhijit

1

Motivato dalla risposta di Ali (grazie a Ali!), Ho fatto alcune letture e alcuni esperimenti numerici e ho deciso di pubblicare la mia risposta sulla natura della deriva del giroscopio.

Ho scritto un semplice octave online script tramando rumore bianco e rumore bianco integrato:

enter image description here

La trama angolo ridotti di offset che viene mostrato nella questione sembra assomigliare ad un tipico random walk. Le passeggiate matematiche casuali hanno zero valore medio, quindi non possono essere considerate come deriva. Tuttavia, credo che l'integrazione numerica del rumore bianco porti a una media diversa da zero (come si può vedere nella trama dell'istogramma per la passeggiata casuale di seguito). Questo, insieme alla variazione linearmente crescente, potrebbe essere associato alla cosiddetta deriva del giroscopio.

C'è una grande introduzione agli errori derivanti da giroscopi e accelerometri here. In ogni caso, ho ancora molto da imparare, quindi potrei sbagliarmi.

Per quanto riguarda il filtro gratuito, c'è qualche discussione here, che mostra come la deriva del giroscopio è ridotta da esso. L'articolo è molto informale, ma l'ho trovato interessante.