Python 磁强计的校准不';我不能给出预期的结果

Python 磁强计的校准不';我不能给出预期的结果,python,calibration,magnetometer,Python,Calibration,Magnetometer,我想用磁强计得到一个“指南针航向”(我想知道北面的角度)。我在一些教程中看到,首先,我需要校准它。当我查看如何进行校准时,我看到了磁强计值与和未经校准的图形比较 以下是我使用的链接:和 两个链接均显示未校准的磁强计应在图上显示以下几个簇: 经校准的锰计应在零点附近的同一点上具有两个3轴,如下所示: 我用的是苹果。我尝试使用以下python代码获得相同的图形: def save_mag_values(): f = open("magnetometer.csv","w") fo

我想用磁强计得到一个“指南针航向”(我想知道北面的角度)。我在一些教程中看到,首先,我需要校准它。当我查看如何进行校准时,我看到了磁强计值未经校准的图形比较

以下是我使用的链接:和

两个链接均显示未校准的磁强计应在图上显示以下几个簇:

经校准的锰计应在零点附近的同一点上具有两个3轴,如下所示:


我用的是苹果。我尝试使用以下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分钟后打印数值。以下是我对未校准磁强计的了解:

正如你所看到的,全局形状不是一个圆,我不知道为什么。我尝试校准它,以下是我的:

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

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

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

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

校准只是将它们带到公共中心,使椭圆读数呈圆形


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

如果你问为什么磁强计读数聚集在图案的一侧,我会情不自禁。如果您询问如何使绘图坐标的纵横比为1:1,gnuplot命令是
set size ratio-1
,我想知道我拥有的形状是否为法线。它应该是一个圆圈,显然不是,我不知道为什么。感谢gnuplot命令,但我认为问题并不是来自它。你确定你的磁强计工作正常吗?我在两个不同的传感器(都是adafruit的lsm9ds1)上测试了这个实验,得到了大致相同的结果。我不知道它们是否都不起作用,或者问题是否来自环境(我的意思是磁场或其他东西)或我使用的代码。您确定在捕获样本数据时在所有三个轴(x、y、z)上移动它吗?乍一看,你似乎还没有得到足够多的样本数据。谢谢你的回答和链接!!我会用另一种型号或传感器(另一个品牌)来试试。再次感谢!!