Калибровка магнитометра не дает ожидаемых результатов - PullRequest
5 голосов
/ 27 марта 2019

Я хочу получить "направление по компасу" (я хочу знать угол на север), используя магнитометр .Я видел в нескольких уроках, что сначала мне нужно откалибровать .Когда я посмотрел, как это сделать, я увидел графическое сравнение значения магнитометра с и без калибровки.

Вот ссылки, которые я использовал: link_one и link_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


Я используюАдафрут 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 Ответ

1 голос
/ 03 апреля 2019

Если ваш магнитометр работает (не поврежден магнитом) и если вы снимаете показания, вращая магнитометр на 360 градусов вдоль 3 осей, тогда ваш график должен показать что-то вроде этого (наихудший сценарий).

enter image description here

В идеальном случае показания должны быть в 3 концентрических кругах, перекрывающихся на одной границе.

В практических случаях из-за смещений из мягкого и твердого железа, окружающих магнитный материалВлияния, показания станут эллиптическими, а их центры сместятся, как показано на рисунке выше.

Калибровка просто приводит их к общему центру и делает эллиптические показания круглыми.

Пару лет назад я заказал несколько магнитометров.Я потратил много времени на отладку кода и позже обнаружил, что все они были повреждены во время транзита.Я также написал сообщение в блоге относительно калибровки магнитометра .

...