2014-04-02 30 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); 
的构造