Получение магнитного севера от xyz-магнитометра (iPhone 3.0)

Я на самом деле перепробовал вопрос с платформ разработки iphone. Я не спрашивал об этом, но я нашел его, пытаясь найти ответ. Никто еще не ответил там, поэтому я подумал, что попробую опубликовать его здесь.

Заранее благодарим за помощь!

Кто-нибудь знает какие-либо особенности алгоритма вычисления магнитного заголовка из исходных значений xyz для CLHeading? Я уверен, что должен быть общий подход к этому, который работает и для разных магнитометров.

Ответ 1

Если вы не хотите использовать значение trueHeading и считаете, что компас идеально расположен горизонтально, заголовок может быть вычислен следующим образом:

  • (y > 0) heading = 90 - atan2 (x, y) * 180/pi
  • (y < 0) heading = 270 - atan2 (x, y) * 180/pi
  • (y = 0, x < 0) заголовок = 180,0
  • (y = 0, x > 0) заголовок = 0.0

(это из http://www.magneticsensors.com/datasheets/an203.pdf)

... плюс заголовок должен быть скорректирован для Магнитное отклонение и Магнитное склонение

если компас не является горизонтальным, вы должны использовать только горизонтальный компонент (вы не можете игнорировать ось z), проецируя вектор (x, y, z) на плоскость, параллельную поверхности земли, а затем вычислить заголовок из этих проецируемых x и y.

Надеюсь, что это поможет.