磁力计的校准未得到预期的结果

时间:2019-03-27 13:20:08

标签: python calibration magnetometer

我想使用磁力计获得“罗盘方向”(我想知道与北方的夹角)。我在几本教程中已经看到,首先,我需要对其进行校准。当我查看如何做时,我看到了没有校准的磁力计值的图形比较。

这是我使用的链接:link_onelink_two

两个链接均显示未校准的磁力计应在图上将以下几类显示为波纹管:

This is the graph that I should have for an uncalibrated magnetometer

校准的磁力计应使两个3轴都在围绕零的同一点上,如下所示:

This is the graph that I should have after the calibration


我正在使用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分钟后打印出这些值。这是我的未校准磁力计的功能: My graph of non calibrated magnetometer

如您所见,整体形状不是圆形,我也不知道为什么。我试图对其进行校准,这是我所拥有的:

This is my graph with calibration

谁能告诉我我做错了什么,为什么我不能拥有应有的“圆形”值? 还是形状必须像我在教程中看到的那样是完美的圆形或我的形状很好? 谢谢

1 个答案:

答案 0 :(得分:1)

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

enter image description here

在理想情况下,读数应为3个同心圆,它们在同一边界上重叠。

在实际情况下,由于软铁和硬铁的偏置,周围磁性材料的影响,读数将变为椭圆形,并且其中心将偏移,如上图所示。

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

几年前,我订购了几台磁力计。我花了很多时间调试代码,后来发现它们在传输过程中都损坏了。我还写了一篇博客文章regarding calibration of magnetometer