来自加速度计和磁力计的俯仰,滚转和偏航

时间:2015-06-28 16:06:39

标签: android rotation quaternions

我想根据旋转矢量做一些工作。问题是大多数Android设备没有陀螺仪传感器(也没有旋转矢量传感器)。我认为有一种方法可以通过使用加速度计(用于俯仰和滚动)和磁力计(用于偏航)来计算四元数的近似值。问题是它们的值不受最大值的限制(对于俯仰和滚动,我可以使用G = 9.81并尝试过滤额外的加速度)。

有人可以帮我找一个近似的解决方案吗?

1 个答案:

答案 0 :(得分:1)

float[] rotationMatrix = new float[16];
float[] rotationMatrixRemapped = new float[16];
float[] accMagOrientation = new float[3];

SensorManager.getRotationMatrix(rotationMatrix, null, oldAccelerometerVals, oldMagnetometerVals);
SensorManager.remapCoordinateSystem(rotationMatrix, SensorManager.AXIS_MINUS_Y, SensorManager.AXIS_MINUS_X, rotationMatrixRemapped);
SensorManager.getOrientation(rotationMatrix, accMagOrientation);