Domanda

Ho bisogno di costruire la bussola per la mia applicazione.

Dalla lettura della documentazione sembra che ci siano due modi ragionevoli per farlo:

    Metodo
  • Sensor.TYPE_ORIENTATION: Questo è il modo più semplice di farlo. Il problema di questo è che non è preciso. Quando paragono la mia lettura con Snaptic Compass è di circa 10-15 degress fuori che per i miei scopi è inaccettabile.
  • Sensor.TYPE_ACCELEROMETER, Sensor.TYPE_MAGNETIC_FIELD e getRotationMatrix () in combinazione con remapCoordinateSystem () e getOrientation () Metodo: La documentazione dice che questo "è di solito più accurata". Il problema è indipendentemente dal ritardo mi registro ascoltatore la bussola impazzisce anche quando il dispositivo è fermo su una superficie piana.

Tutti i suggerimenti per la risoluzione di questo problema sarà molto apprezzato.

È stato utile?

Soluzione

appare come mob1lejunkie ha capito questo già, ma solo per riferimento futuro, lasciatemi dire che il problema qui è magnetica declinazione (la differenza tra il nord magnetico e il nord geografico). È possibile provare un modello online da NOAA per ottenere un senso di ciò che la differenza è nella vostra parte del mondo.

Android include un modello chiamato GeomagneticField che può essere utilizzato per calcolare la declinazione approssimativa data una latitudine, longitudine e altitudine. Quindi, quello che credo che devi fare per calcolare il nord geografico viene letto il valore di azimuth da Sensor.TYPE_ORIENTATION e poi aggiungere a quella GeomagneticField.getDeclination ().

Altri suggerimenti

E 'il lato negativo di pezzi compatti realizzati per i telefoni. A $ 5000 IMU che stiamo usando in questo momento ha un errore di +/- 2 gradi e in tale intervallo sembra di impazzire pure.

Prova allontanandosi da interferenze, superfici metalliche, e vedere se migliora. In caso contrario, io odio per rompere le cattive notizie, ma questo è l'hardware.

Hai visto questi?

http://developer.android.com/reference/android/hardware /SensorManager.html

http://groups.google .com / gruppo / android-sviluppatori / browse_thread / thread / bbb0e8b97c673cf9 / 5c16bc2e49f6e972? lnk = raot

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