Калибровка датчика магнитного поля на ANDROID

Я делаю приложение, которое работает как компас.

Я использую акселерометр и датчики магнитного поля для вычисления азимутального угла через sensor.getOrientation().

Я ищу что-то, что может улучшить точность датчика магнитного поля, так как я получаю его точность, как UNRELIABLE!

Кто-нибудь знает что-нибудь об этом? Я ищу что-то, что может быть жестко запрограммировано или, например, просто физически перемещать телефон, пока он не будет откалиброван!

Ответ 1

Это не окончательный ответ (я точно ничего не знаю), но мое понимание из онлайновых сообщений состоит в том, что размахивание телефона вокруг фигуры 8 раз несколько раз, пока используется компас, автоматическая повторная калибровка. Например, это приложение Google Maps предлагает. Я не знаю, зависит ли это от функциональности приложения (что-то на картах, которые обнаруживают размахивание акселерометром и вызывает повторную калибровку), или что-то в стеке Android, или что-то особенное для реализации на телефоне. Попробуй и посмотри!

Например, обсуждение: http://androidforums.com/epic-4g-support-troubleshooting/217317-cant-get-compass-calibrate.html

Эта ссылка, по-видимому, предполагает, что этот процесс вращения по оси/фигуре-8 является встроенной функциональностью: http://m.eclipsim.com/gpsstatus/

И вот еще одна статья, в которой утверждается, что это встроенная функциональность, и что вам даже не нужно запускать компас-потребляющее приложение для повторной калибровки: http://www.ichimusai.org/2009/06/20/how-to-calibrate-the-htc-magic-compass/

Ответ 2

Всего несколько баллов

Движение фигуры 8 работает иногда, а не другие, я понятия не имею, почему им действительно нужен какой-то код, основанный на проверке, работает ли движение 8 (Предполагая, что физическое движение действительно требуется)

Они также нуждаются в способе обнаружить, что требуется калибровка, я просмотрел код для вывода точности (ненадежная константа), и как только они отправят его вам, они не отправят его снова, так, например, если вы откалибруете, но затем попадают в сильное магнитное поле, и он не будет повторно отправлен (не уверен, почему они это сделали)

Не полностью надежный способ обнаружения текущих проблем заключается в том, что вы также можете использовать выход магнитного датчика и делать что-то вроде поля = sqrt (x * x + y * y + z * z) и проверять, что поле находится между 25 и 65, а затем попросите пользователя выполнить калибровку, если это не так.

В итоге после тестирования 18 телефонов, я никогда не буду зависеть от компаса, основанного на Android, с текущим посещением телефонов, точность всегда будет под вопросом.

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

ПРИМЕЧАНИЕ. На многих неправильных телефонах мы обнаружили, что датчик пишет файл калибровки и файл tmp с тем же именем. Если вы удалите эти файлы и перезагрузите телефоны, файл калибровки воссоздается с нулевыми значениями, а проблемы с холодным запуском и общей калибровкой решаются сами.

Плохая новость заключается в том, что они хранятся в /data/misc и требуют привилегий root (спасибо Google и Sensor mfg!), поэтому, хотя я подозреваю, что это решит множество проблем для многих разработчиков, это просто не является жизнеспособным с точки зрения приложения на рынке.

Ответ 3

Я разрабатываю для Android. Я использую титановый сплав в качестве инструмента разработки с титановым геолокационным модулем.

Я тестировал только 2 устройства [Galaxy Note и S4] против коммерческого магнитного компаса. После процесса калибровки [наклона вдоль оси 3] и использования 2 разных приложений компаса и приложения, над которым я работаю, компас Android кажется достаточно точным для базового использования... корреляция была достаточно хороша для моей цели. Я также обнаружил, что показания компаса прибора очень чувствительны к другим магнитным и электрическим полям... Первоначальная ошибка, которую я сделала, заключалась в использовании функции компаса, в то время как устройство находилось в защитнике устройства с магнитным закрывающим устройством [довольно распространенным на вкладках]... Это вмешательство особенно сильное. Поэтому я должен предлагать пользователям моего приложения удалять устройства, защищать устройства от других электроники, а затем выполнять стандартную калибровку перед инициализацией приложения.

Ответ 4

Другой вариант:

Перейти к меню датчиков: #*0#*

Затем, если вы видите красную строку в разделе Magnetic Sensor и Need for Calibration, вы должны перекалибровать свой компас.

Как

В соответствии с эти ребята;

Поверните Samsung Galaxy Mini S5 вокруг всех его осей, пока красный линия в черном круге меняет цвет с красного на синий. Вы также можете пробегают движение, которое следует за формой 8. Возможно, что требуется несколько попыток калибровки компаса...