Получение магнитного севера от XYZ магнитометра (iPhone 3.0) - PullRequest
10 голосов
/ 28 июня 2009

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

Заранее спасибо за любую помощь!

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

1 Ответ

8 голосов
/ 28 июня 2009

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

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

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

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

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

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

...