Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino MPU6050 IMU四元数转换_Arduino - Fatal编程技术网

Arduino MPU6050 IMU四元数转换

Arduino MPU6050 IMU四元数转换,arduino,Arduino,我对控制系统有一个两难的选择,由于我数学能力差,尽管在谷歌上搜索了好几天,我还是无法解决这个问题- 我使用一个带有MPU6050的Arduino来获得偏航、俯仰和横滚,这是从四元数转换而来的(以防止万向节锁定) 我遇到的这个问题是由于空间问题,我无法将陀螺仪平放,x朝前,z朝上/向下,y朝左。相反,我只能在x朝下,y朝前,z朝右/左的情况下安装陀螺仪。例如,轴(横摇、俯仰、偏航)已变为(横摇、横摇、俯仰)。我试图转换四元数以反映这种变化,但不知道如何转换。我试着给它加一个四元数,但没有成功。有人

我对控制系统有一个两难的选择,由于我数学能力差,尽管在谷歌上搜索了好几天,我还是无法解决这个问题-

我使用一个带有MPU6050的Arduino来获得偏航、俯仰和横滚,这是从四元数转换而来的(以防止万向节锁定)


我遇到的这个问题是由于空间问题,我无法将陀螺仪平放,x朝前,z朝上/向下,y朝左。相反,我只能在x朝下,y朝前,z朝右/左的情况下安装陀螺仪。例如,轴(横摇、俯仰、偏航)已变为(横摇、横摇、俯仰)。我试图转换四元数以反映这种变化,但不知道如何转换。我试着给它加一个四元数,但没有成功。有人知道如何最好地使用这种安装方式的IMU吗?

我可能错了,但由于您通过恒定旋转来旋转方向向量(偏航、俯仰、滚动),您不需要担心万向节锁。您只需将方向向量乘以相应的预先计算的旋转矩阵即可。

完成此操作后,我以前尝试过此方法(错误),并将其视为错误的方法。在你回答之后,我投入了更多的时间,现在效果非常好。非常感谢。就实现而言,最简单的方法是用四元数表示系统坐标的整体旋转,然后将四元数相乘得到结果。