磁力计的校准没有给出预期的结果

Calibration of magnetometer doesn't give expected results

我想要 "compass heading"(我想知道北方的角度)使用 磁力计。我在几个教程中看到,首先,我需要 calibrate 它。当我查看如何执行此操作时,我看到了磁力计值 校准的图形比较。

以下是我使用的链接:link_one and link_two

两个链接都显示未校准的磁力计应在图表上显示多个簇,如下所示:

并且校准后的磁力计应该在零附近的同一点上有两个 3 轴,如下所示:


我正在使用 Adafruit LSM9DS1。我尝试使用以下 python 代码获得相同的图形:

def save_mag_values():
    f = open("magnetometer.csv","w")
    for i in range(10000):
        value = sensor.magnetic
        f.write(",".join(map(str,value)))
        f.write("\n")

然后我使用下面的 gnuplot 命令打印:

gnuplot> plot "magnetometer.csv" using 1:2 title "XY" pointsize 2 pointtype 7, \
              "magnetometer.csv" using 1:3 title "XZ" pointsize 2 pointtype 7, \
              "magnetometer.csv" using 2:3 title "YZ" pointsize 2 pointtype 7

正如教程中所写,我只是慢慢移动传感器并在 1 分钟后打印值。这是我对未校准的磁力计的了解:

如您所见,全局形状不是圆形,我不知道为什么。我试着校准它,这就是我所拥有的:

谁能告诉我我哪里做错了,为什么我不能拥有 "circle shape" 应有的价值? 或者形状是否必须像我在教程中看到的那样是完美的圆形,或者我的很好? 谢谢

如果您的磁力计正在工作(没有磁损坏)并且如果您通过沿 3 个轴旋转磁力计 360 度来捕获读数,那么您的绘图应该显示类似这样的内容(最坏的情况)。

理想情况下,读数应在同一边界重叠的3个同心圆内。

在实际情况下,由于软铁和硬铁的偏差,周围磁场material的影响,读数会变成椭圆形,中心会偏移,如上图所示。

校准只是将它们带到共同的中心并使椭圆读数呈圆形。

几年前,我订购了几个磁力计。我花了很多时间调试代码,后来发现在运输过程中全部损坏了。我也写了一篇博客postregarding calibration of magnetometer.