获得3D Android设备方向

时间:2014-04-02 08:08:24

标签: android accelerometer gyroscope magnetometer kalman-filter

大多数智能手机都配有3轴陀螺仪,3轴磁力计和3轴加速度计。结合这些传感器'巧妙地测量(卡尔曼滤波器)应该产生快速,准确,无噪声和绝对的器件方向。这可以存储为四元数或偏航/俯仰/滚动值。

在Android中实现此目的的最简单方法是什么?操作系统是否已经为您进行了这些计算?是否有可以使用的开源实现?

我发现的大多数示例/教程只关注一种类型的传感器。但对于我的用例,只有通过适当过滤融合所有三个传感器才会引起人们的兴趣...

1 个答案:

答案 0 :(得分:1)

您需要实现SensorEventListener接口。 在你的班上你必须声明这些:

Sensor sensor;
SensorManager sensorManager;

并覆盖这些方法:

public void onAccuracyChanged(Sensor sensor,int accuracy)
{

}

public void onSensorChanged(SensorEvent event)
{
}

并在您的类的构造函数(Activity或...)

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