安卓手机根据磁力计和加速度计求出旋转矩阵及欧拉角的原理

时间:2022-09-16 17:54:07

相关安卓代码可以在这里找:http://book2s.com/java/src/package/android/hardware/sensormanager.html#15115e4a020269aa3c3e00ac6ef61b5a

旋转矩阵的几何意义:

安卓手机根据磁力计和加速度计求出旋转矩阵及欧拉角的原理

安卓手机根据磁力计和加速度计求出旋转矩阵及欧拉角的原理

安卓手机根据磁力计和加速度计求出旋转矩阵及欧拉角的原理

 

 

也就是说旋转矩阵的每一行代表i系某一坐标轴上的向量在b系投影的单位向量。

换句话说,如果想要求手机旋转矩阵,只需要求出在大地坐标系下(xyz分别对应东,北,天),x,y,z轴各自在手机坐标系下的投影,再求投影的单位向量即可。

而在正常情况下,重力是向下的,磁场是指向北并且斜向下的。那么重力和磁场向量的叉乘就会得到东西向的向量。同样,由上下方向和东西方向向量叉乘会得到南北向的向量。

在手机中,旋转顺序为y,x,z。由加速度计和磁力计得到旋转矩阵及对应欧拉角的matlab代码如下

安卓手机根据磁力计和加速度计求出旋转矩阵及欧拉角的原理