2014-04-02 49 views
1

大多數智能手機都配備了3軸陀螺儀,3軸磁力儀和3軸加速度計。以一種聰明的方式(卡爾曼濾波器)組合這些傳感器的測量應該能夠產生快速,準確,無噪聲和絕對的設備定向。這可以存儲爲四元數或偏航/俯仰/滾轉值。獲取3D Android設備方向

在Android中實現這個最簡單的方法是什麼?操作系統是否已經爲你做了這些計算?有人可以使用的開源實現嗎?

我能找到的大多數示例/教程只關注一種類型的傳感器。但是對於我的用例來說,只有通過適當的濾波融合所有三個傳感器纔是有趣的...

回答

1

您需要實現SensorEventListener接口。 和你的類必須聲明這些:

Sensor sensor; 
SensorManager sensorManager; 

並且覆蓋這些方法:

public void onAccuracyChanged(Sensor sensor,int accuracy) 
{ 

} 

public void onSensorChanged(SensorEvent event) 
{ 
} 

,並在您的類(活動或...)

sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); 
sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_GAME); 
的構造