2016-04-26 173 views
1

我從加速度計中獲得矢量(Ax,Ay,Az)。當我的手機躺在桌子上,頂部朝北時,我知道我的手機座標系統和世界座標系統匹配。但是當我改變手機的位置時,座標系統不一樣,需要重新映射。爲此目的,我需要一個旋轉矩陣來解決問題。但無法確定旋轉矩陣。我試着像下面的胎面和沒有運氣如何將設備座標系映射到世界座標系android

Not able to translate device co-ordinate system to world co-ordinate system on android

那麼,有沒有辦法可以旋轉矩陣和機器人進行映射?

我試着用三軸的旋轉矩陣乘以向量。但它沒有給出任何滿意的結果。由加速度計確定的角度不正確。另外我認爲旋轉矩陣不能達到目的。

rotation matrix

+0

可以請你告訴我們你的代碼是什麼你已經嘗試過的座標臨時矩陣? – Mostafiz

回答

1

對於這些目的機器人給出的重力傳感器數據和磁傳感器數據提供SensorManager。起初重力傳感器(加速計)讀數和磁性傳感器讀數。聲明數組並將數據存儲到它們。旋轉陣列將用於存儲旋轉矩陣數據。 temp []用於臨時存儲數據。

private static final float rotation[] = new float[9]; 
private static final float temp[] = new float[9]; 
private static final float grav[] = new float[3]; 
private static final float mag[] = new float[3]; 

然後通過下面的代碼得到旋轉矩陣。這裏溫度是存儲旋轉信息

SensorManager.getRotationMatrix(temp, null, grav, mag); 

重映射使用以下方法

SensorManager.remapCoordinateSystem(temp, SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, rotation); 
相關問題