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
Arduino Madgwick算法和MPU9250传感器的漂移?_Arduino_Magnetometer_Imu - Fatal编程技术网

Arduino Madgwick算法和MPU9250传感器的漂移?

Arduino Madgwick算法和MPU9250传感器的漂移?,arduino,magnetometer,imu,Arduino,Magnetometer,Imu,对于我的项目,我需要一种方法来确定火箭的正确方向 我从这里获取了Madgwick过滤器的代码 https://github.com/morgil/madgwick_py 为了收集数据,我使用了Arduino Nano+MPU9250传感器。此设置每隔12毫秒通过串行端口将数据包发送到我的电脑 我通过计算偏差来校准磁强计,以“对齐”由一组测量值创建的轴原点和球体中心 然后我用blender画了坐标轴: 并为它编写了一些脚本。它只是从序列中读取值,将它们输入过滤器,然后使用四元数旋转模式旋转我的轴

对于我的项目,我需要一种方法来确定火箭的正确方向

我从这里获取了Madgwick过滤器的代码

https://github.com/morgil/madgwick_py
为了收集数据,我使用了Arduino Nano+MPU9250传感器。此设置每隔12毫秒通过串行端口将数据包发送到我的电脑

我通过计算偏差来校准磁强计,以“对齐”由一组测量值创建的轴原点和球体中心

然后我用blender画了坐标轴: 并为它编写了一些脚本。它只是从序列中读取值,将它们输入过滤器,然后使用四元数旋转模式旋转我的轴对象

我把X轴的方向弄错了一点,所以当我顺时针旋转我的板时,屏幕上的轴是逆时针旋转的。我翻转了所有X组件的标志,一切都变好了

根据这张图片,我翻转了X轴和Y轴以及Z轴的符号,以便将磁强计的轴与陀螺仪+加速计对齐

它几乎只适用于一个小的例外——当“稳定”后,我向下倾斜,即X轴(或Y轴,无所谓),该轴开始向全局X-Y平面漂移。若我向上倾斜轴,剩余的轴开始围绕全局O-Z轴漂移,如下所示

漂移的速度取决于Madgwick滤波器的β-β越大,漂移越大


可以做些什么?

我也看到了同样的事情,你有没有找到解决方案?通过错误和尝试,我找到了beta和迭代次数的最佳组合(在一个收到的度量上多次运行算法)。但我认为这不应该像这样工作。也许9250不准确,或者我应该每12毫秒传输一个以上的数据包,但我会弄明白的。