2015-06-28 122 views
0

我想根據旋轉矢量做一些工作。問題在於大多數Android設備都沒有陀螺儀傳感器(也沒有旋轉矢量傳感器)。我認爲有一種方法可以通過使用加速度計(用於俯仰和滾轉)和磁力計(用於偏航)來計算四元數的近似值。問題是它們的值不受最大值的限制(對於俯仰和滾動,我可以使用G = 9.81並嘗試過濾額外的加速度)。來自加速度計和磁力計的俯仰,滾轉和偏航

有人可以幫我找到一個近似解決方案嗎?

回答

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); 
相關問題