xoy1(XOY1688高压芯片引脚功能)
xoy1
1.介绍
2.2号。MPU6050六轴传感器可以通过加速度传感器和陀螺仪同时输出加速度和角速度,并与一些开源项目(fusion、DMP等)合作。)来计算相应的四个元素和欧拉角,并可以通过欧拉角计算旋转后的三维坐标系的平面(xoy平面、xoz平面和yoz平面)与水平面(初始xoy平面)之间的角度。【/h/]欧拉角旋转定义(重要)
3.在使用欧拉角演示旋转之前,必须首先指定欧拉角的旋转顺序!!!(z-》y-》x或z-》x-》y等。)因为绕X轴、Y轴、Z轴的旋转是同一个角度,顺序不同,最终的旋转姿态也会不同。大多数开源旋转序列计算使用z-y-x旋转序列,包括MPU6050的DMP融合算法。【/h/]欧拉角外旋
4.一般来说,欧拉角旋转是一些开源项目中利用世界坐标系和加速度、角速度计算出的欧拉角。无论MPU6050在什么状态下通电,由X轴和Y轴组成的平面始终与水平面平行。
5.(重要!!!)在外旋的过程中,因为已经规定了旋转顺序,所以按照旋转轴的顺序旋转是正常的。正常外旋下,前面的转轴先旋转时,不会影响后面顺序的转轴初始状态的变化(因为世界坐标)。但是,如果后面的旋转轴先旋转,然后旋转前面的旋转轴,那么前面的旋转轴的初始方向将会改变。【/h/]欧拉角内旋转
xoy16.欧拉角内旋是使用局部坐标系,即初始三维坐标的X轴和Y轴组成的平面是MPU6050芯片通电的平面。
7.(重要!!!)在内旋转过程中,因为旋转顺序已经指定,所以按照旋转轴的顺序旋转是正常的。在正常内旋转情况下,当前转轴先旋转时,会影响后转轴初始状态的变化(后转轴将绕前转轴旋转相同的旋转角度并改变初始方向,后转轴将根据前一次旋转后获得的新转轴旋转)。如果后面的旋转轴先旋转,然后旋转前面的旋转轴,那么前面的旋转轴的初始方向也会改变。【/h/]卡丹死锁(重要!!)
8.内部旋转:当我以z-y-x Y-X的顺序指定旋转时。如果Y轴先旋转,并且刚好旋转90°(因为后面的旋转会影响前面轴的初始状态),则Z轴和X轴将重合并且方向相同。如果我再次旋转Z轴或X轴,欧拉角X和Z将同时增大或减小。如果Y轴先旋转,并且仅旋转-90°,(因为稍后的旋转将影响前轴的初始状态)将导致Z轴和X轴重合且方向相反。如果我再次旋转Z轴或X轴,欧拉角X和Z将同时增大和减小。
9.外部旋转:当我按z-y-x顺序指定旋转时。如果Y轴先旋转,并且仅旋转-90°,(因为稍后的旋转将影响前轴的初始状态)它将导致Z轴和X轴重合并且方向相同。如果我再次旋转Z轴或X轴,欧拉角X和Z会同时增大或减小;如果Y轴先旋转,并且刚好旋转90°(因为后面的旋转会影响前面轴的初始状态),则Z轴和X轴将重合并且方向相反。如果我再次旋转Z轴或X轴,欧拉角X和Z将同时增大和减小。
10.同样,当指定其他旋转顺序时,只要中间的旋转轴先旋转,并且刚好旋转90°或-90°,就会发生万向节死锁。【/h/]通过在Github上演示开源项目rotation_master,可以轻松理解欧拉角的内旋和外旋(感谢这位大神)。
11.发布v 2022 01 12 I take 2222/rotation _ master github【/h/]【/h/]MPU 6050缺陷。
12.如果没有外部磁传感器,12。MPU6050无法采集地磁数据(地球磁力),所以会导致欧拉角Z不断变化(通电初始化后,使用一段时间后会回到初始状态,会出现莫名其妙的角度,内旋和外旋都有这个问题)。欧拉角Z恒定变化的结果是X轴和Y轴的初始方向在三维旋转坐标中发生变化。【/h/]算法推导
13.虽然X轴和Y轴的初始方向是不断变化的,但它们形成的xoy平面不会改变,因此三维坐标平面与指定某个旋转顺序后的初始xoy平面形成的平面角不会因为Z轴的不确定性(欧拉角Z)而改变。该算法的思想适用于内旋转和外旋转,但算法不同。
14.面角的范围是0-180度。可以根据欧拉角的符号来判断面角的符号,旋转角度为-180°-180°,这样就可以得到所有旋转状态返回的三个面角组成的数组的唯一性。(这里只给出C/C++的符号判断。Python重写很简单,但我很懒;)【/h/]C/c++代码(消旋化)
15.Python代码(外部旋转)(使用numpy)
16.Python代码(外部旋转)(不带numpy)
17.运营结果
18.内部旋转算法参考: