相關安卓代碼可以在這里找:http://book2s.com/java/src/package/android/hardware/sensormanager.html#15115e4a020269aa3c3e00ac6ef61b5a
旋轉矩陣的幾何意義:
也就是說旋轉矩陣的每一行代表i系某一坐標軸上的向量在b系投影的單位向量。
換句話說,如果想要求手機旋轉矩陣,只需要求出在大地坐標系下(xyz分別對應東,北,天),x,y,z軸各自在手機坐標系下的投影,再求投影的單位向量即可。
而在正常情況下,重力是向下的,磁場是指向北並且斜向下的。那么重力和磁場向量的叉乘就會得到東西向的向量。同樣,由上下方向和東西方向向量叉乘會得到南北向的向量。
在手機中,旋轉順序為y,x,z。由加速度計和磁力計得到旋轉矩陣及對應歐拉角的matlab代碼如下