6

Utilizzo lo smartphone LG Optimus 2x (sensore giroscopio e accelerometro) per il posizionamento.Deriva sensore gyro e angolo corretto Stima

Voglio ottenere angoli di rotazione corretti dal giroscopio che possono essere utilizzati in seguito per la trasformazione delle coordinate da terra a terra. La mia domanda è che

Come posso misurare e rimuovere la deriva nel sensore giroscopico.

L'unico modo è prendere la media dei campioni di giroscopio (quando il cellulare è in condizioni statiche) per un po 'di tempo e sottrarre dal campione corrente, il che non è un buon modo.

Quando il cellulare è in rotazione/movimento come ottenere gli angoli liberi da deriva?

risposta

1

Fondamentalmente i giroscopi si spostano su lunghi periodi di tempo. Mentre gli accelerometri non hanno tendenza, ma tendono ad essere instabili. Combinando le informazioni di entrambi i sensori utilizzando un filtro Kalman è possibile ottenere un atteggiamento preciso. Per alcuni di questi meno complessi è possibile utilizzare anche un filtro complementare.

Vedi questo post per ulteriori informazioni: Combine Gyroscope and Accelerometer Data

2

Per quanto ne so, o il filtro di Kalman o qualcosa di simile è implementato nel SensorManager. Controlla Sensor Fusion on Android Devices: A Revolution in Motion Processing.

Stai cercando di risolvere un problema che è già stato risolto.

+0

Non penso che il filtro kalman sia effettivamente implementato in Sensor Manager. è possibile visualizzare la fonte su http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3.4_r1/android/hardware/SensorManager.java#SensorManager riguarda Navigator – Navigator

+0

Quando ho guardato il codice sorgente, mi sembrava un filtro di Kalman, ma forse mi sono lasciato ingannare.Ma in ogni caso, il moderno sistema operativo Android utilizza Sensor Fusion. OP dovrebbe guardare il sensore GRAVITY invece del sensore ACCELEROMETER. Il sensore GRAVITY è un sensore virtuale creato combinando accelerometro e giroscopio. È essenzialmente il sensore di accelerazione lineare con effetti di movimento filtrati. –

2

Sono l'autore di un'applicazione bussola che integra i dati dei sensori magnetici e del giroscopio (steady compass). Ho testato questa applicazione per lo più su un nero LG Optimus (il dispositivo che si può vedere nel video) con sistema operativo Android 2.2, in modo da sto andando a condividere le mie esperienze: letture

  • Giroscopio sono molto precisi. Questo sensore è esattamente l'opposto dell'accelerometro e dei sensori magnetici che danno letture con molto jitter.
  • Le letture dal giroscopio (cioè la velocità angolare) non si spostano affatto. Avrai una deriva nella stima dell'orientamento se integrerai solo le letture del giroscopio. Poiché si stanno integrando i campioni in tempi diversi, si otterrà un approccio che si degraderà dopo ogni passaggio di integrazione.
  • Per evitare tale deriva nella stima dell'orientamento, è necessario considerare altre fonti di input per correggere i risultati derivanti dall'integrazione dei dati del giroscopio. La soluzione è l'integrazione di dati provenienti dal sensore di orientamento (magnetico + accelerazione) e dati provenienti dal giroscopio.

Fare attenzione ai telefoni LG: Secondo l'API di Android, il giroscopio restituirà i dati in rad/s. L'LG Optimus Black con Froyo fornisce letture in gradi/s. L'aggiornamento ad Android 2.3 è appena stato rilasciato per tale telefono. Devo verificare se la nuova versione si comporta in base alle specifiche.

Quale versione Android ha il tuo telefono? Hai provato qualche applicazione usando il giroscopio? Hai ottenuto i risultati attesi?

+0

Ciao jap1968, sto usando lo stesso LG Optimus 2x. Originariamente c'era Android 2.2 e ho notato l'osservazione simile che non c'è deriva nel segnale del giroscopio ma solo a causa di vibrazioni e sobbalzi e deriva dovuti all'integrazione. Quando ho aggiornato a Android 2.3.4, ho notato due cose, i primi valori del giroscopio sono in rad/sec e in secondo luogo ora il giroscopio ha un valore di offset anche quando il cellulare è a riposo, prima nella versione Froyo 2.2 Il segnale del giroscopio era quasi zero e c'era nessun offset. Hai osservato la stessa cosa? plz commentare se si è verificato.regards Navigator – Navigator

+0

Il provider locale (Orange Spagna) non ha rilasciato l'aggiornamento, quindi l'Optimus Black utilizzato per testare è ancora in esecuzione su Android 2.2. Ho anche testato la bussola su altri dispositivi con giroscopio: tablet con Android 3.1 e 3.2, e Samsung Galaxy S II con Android 2.3.x. In alcuni dispositivi il giroscopio è davvero molto preciso mentre in altri mostra letture non vicine a zero con il dispositivo che non si muove affatto. Il risultato: alcuni utenti assegnano l'applicazione a 5 stelle a causa di un buon comportamento mentre altri danno una stella a causa di un cattivo comportamento. – jap1968