2015-12-07 27 views
11

Ich versuche Sensor.TYPE_ROTATION_VECTOR auf Android. Es soll Magnetfeldsensor, Beschleunigungsmesser und Gyroskop verwenden, um jederzeit eine genaue Rotation zu gewährleisten. Allerdings merke ich enorme Drift auf Moto G 2. Ich frage mich, ob das ein gerätespezifisches Problem ist, oder dass dies auf vielen Handys vorkommt (was ich annehmen würde, obwohl mir bekannt ist, dass Moto G 2nd mit seinem Gyroskop ein problematischer Fall ist).Sensor.TYPE_ROTATION_VECTOR hat Drift: Gibt es eine Alternative?

Gibt es eine alternative Form der Sensorfusion, die driftfrei ist (mit Magnetsensor)? Ich habe auch Google Cardboard's Sensor Fusion ausprobiert, aber es verwendet Bias-Schätzung, also vermutlich nicht völlig driftfrei (da der Magnetfeldsensor zu diesem Zeitpunkt anscheinend nicht benutzt wird), obwohl immer noch viel besser als TYPE_ROTATION_VECTOR.

+0

Ein altes Google Talk Video auf Sensor Fusion: https://youtu.be/C7JQ7Rpwn2k Auch ist der Drift innerhalb der Spezifikationen? 'MUSS eine Varianz von nicht mehr als 1e-7 rad^2/s^2 pro Hz haben (Varianz pro Hz oder rad^2/s). Die Varianz darf mit der Abtastrate variieren, muss jedoch durch diesen Wert eingeschränkt sein. Mit anderen Worten, wenn Sie die Varianz des Kreisels bei 1 Hz Abtastrate messen, sollte er nicht größer als 1e-7 rad^2/s^2 sein. "Http://static.googleusercontent.com/media/source.android .com/de // compatibility/android-cdd.pdf –

+0

Wie Sie sich das für AR anschauen, das eine lange Dauer hat - das ist wahrscheinlich der Grund, warum sie die HiFi Sensor Funktion 'android.hardware.sensor.hifi_sensors' hinzugefügt haben –

Antwort

5

hat einige handliche Alternativen, die ich gerade gefunden habe. Ich muss immer noch testen, welche Fusion zu den meisten stabilen Ergebnissen führt. Quelle hier: https://bitbucket.org/apacha/sensor-fusion-demo/src.

Viele von diesen zeigen auch Drift; insbesondere diejenigen, die den Kreisel benutzen.

0

Plattform/Hardware-unabhängigen Ansatz

  1. Gyro wird per definitionem immer Drift.
  2. Magnetometer wird per Definition fehlen Präzision (*).
  3. Accelerometer, so weit die Position des Detektors geht, hat keinerlei Wert.

Ein allgemeiner Ansatz besteht in:

  • hören Magnetometer Meldungen ändert, mit einer Amortisation über die Zeit. Dies gibt Ihnen große Änderungen in Geräteausrichtung Änderungen.
  • hören gyroskopische Änderungen Benachrichtigungen, mit einer Amortisierung im Laufe der Zeit. Dadurch erhalten Sie kleine Änderungen in Ausrichtung der Geräteausrichtung.

(*) In einer kartesischen physischen Welt sollte das Magnetometer genug sein, aber in der Welt des Erdbewohner, die Sie benötigen für den Mangel an Magnetometer Häufigkeit der Aktualisierung, Präzision und externer Faktoren, die mit der kompensieren Gyroskop, das sofortige Rückmeldung liefert.