对于我的项目,我需要一种方法来确定火箭的正确方向。
我从这里获取了Madgwick过滤器的代码
https://github.com/morgil/madgwick_py
为了收集数据,我使用了Arduino Nano + MPU9250传感器。此设置每隔12ms通过串行将数据包发送到我的PC。
我校准了磁力计,方法是计算一组测量值所产生的偏差以“对齐”轴的原点和球心。
然后我用搅拌机绘制坐标轴: 3D axis 并为此编写了一些脚本。它只是从串行中读取值,将其输入到Filter中,然后使用四元数旋转模式旋转我的轴对象。
我稍微固定了X轴的方向,所以当我顺时针旋转电路板时,屏幕上的轴会逆时针旋转。我翻转了所有X组件的迹象,一切正常。
根据这张图片Axis of MPU,我翻转了X和Y轴以及Z轴的符号,以将磁力计的轴与陀螺仪+加速度计对齐
几乎有一个例外。它在“稳定”后倾斜,即X轴向下(或Y轴无关紧要)时,该轴开始向全局X-Y平面漂移。如果我将轴向上倾斜,则其余轴将开始绕全局O-Z轴漂移,像这样 X Axis downwards X Axis upwards
漂移的速度取决于Madgwick滤波器的Beta-Beta越大,漂移就越大。
在那里可以做什么?