相关安卓代码可以在这里找:http://book2s.com/java/src/package/android/hardware/sensormanager.html#15115e4a020269aa3c3e00ac6ef61b5a
旋转矩阵的几何意义:
也就是说旋转矩阵的每一行代表i系某一坐标轴上的向量在b系投影的单位向量。
换句话说,如果想要求手机旋转矩阵,只需要求出在大地坐标系下(xyz分别对应东,北,天),x,y,z轴各自在手机坐标系下的投影,再求投影的单位向量即可。
而在正常情况下,重力是向下的,磁场是指向北并且斜向下的。那么重力和磁场向量的叉乘就会得到东西向的向量。同样,由上下方向和东西方向向量叉乘会得到南北向的向量。
在手机中,旋转顺序为y,x,z。由加速度计和磁力计得到旋转矩阵及对应欧拉角的matlab代码如下