版权声明: https://blog.csdn.net/tangjienihaoma/article/details/83026274
想要彻底弄懂矩阵知识,需要很多数学知识的支撑,大学线代复变没学好,我也不怎么懂,但并不影响我们玩MPU9250.
以上是MD6.12库工程样例中的对矩阵的初始值,2个问题?
第一个:这个矩阵变量的作用?
第二个:为什么是这些值?
回答:
关于第一个问题已经在注释里面说了,传感器可能以任何方向安装在PCB上,此矩阵告诉MPL怎么旋转来自驱动层的原始数据。
第二个问题,可以在官方文档中找到答案:
从第2张图可以归纳出,参照坐标系为上图中带有红色箭头方向的坐标系。旋转方向都以逆时针方向。
推出:矩阵的第一行,代表X轴的旋转角度,旋转0°=[1 0 0]; 90°=[0 -1 0]; 180°=[-1 0 0]; 270°=[0 1 0].
矩阵的第二行,代表Y轴的旋转角度, 旋转0°=[0 1 0]; 90°=[1 0 0]; 180°=[0 -1 0]; 270°=[-1 0 0].
矩阵的第三行,代表Z轴的旋转角度,规定Z轴要么向上,要么向下,所以只有2种。向上=[0 0 1],向下=[0 0 -1]
现在回到第2个问题,为什么是这些值:
加速计和陀螺仪的3个轴方向是一样的,所以上面没有列出加速计的矩阵初始化。
这些值,表X,Y,Z三轴和参考方向一致。
这些值表示和参考方向比较:X轴旋转了270°,Y轴旋转了90°,Z轴反面。
如果是其他方向也可以根据此方法推到出来。