【问题标题】:Calibration of magnetometer doesn't give expected results磁力计的校准没有给出预期的结果
【发布时间】:2019-08-18 01:56:36
【问题描述】:

我想使用磁力计获得一个“指南针航向”(我想知道北方的角度)。我在几个教程中看到,首先,我需要校准它。当我查看如何做到这一点时,我看到了没有校准的磁力计值的图形比较。

这是我使用的链接:link_onelink_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 分钟后打印值。这是我未校准的磁力计的内容:

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

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

【问题讨论】:

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

标签: python calibration magnetometer


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢您的回答和您的链接!我将尝试使用另一种类型或传感器(其他品牌)。再次感谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多