Як працює калібрування компаса?


8

Мене цікавить, як працює калібрування компаса / чому, наприклад, малювання 8 або обертання телефону на всіх 3-х осі (або, принаймні, спрацює) - я маю на увазі, що я зрозумів би процес калібрування, якщо додаток скаже мені: Наведіть на північ, потім натисніть цю кнопку там, але ви можете почати з нуля знань для програми, просто обертаючи телефон! Як це робиться? Також чи потрібно вводити спеціальний режим калібрування чи можу я малювати ці цифри (наприклад, 8) безпосередньо на Картах Google? Як Google Maps знає, що я не просто пересуваю телефон, але хочу відкалібрувати компас? Дякуємо за будь-яку підказку!


Позначені як дуп, не надсилайте два окремих питання з тієї ж проблеми. Відредагуйте наявне запитання новою інформацією; android.stackexchange.com/questions/30328/…
pzkpfw

1
Переміщення предмета через магнітне поле може викликати електричний струм, який, напевно, вимірюється в цьому випадку. Малюнок 8 гарантує, що телефон рухається по кожному можливому вектору в двовимірній площині, що повинно дозволяти йому відрізняти північ від півдня. Я думаю. Що стосується карт, які це сприймають, то це просто - а в який інший час ви робите такий абсурдний рух своїм телефоном? Він зовсім відрізняється від звичайних рухів і його слід просто визначити.
Матвій

@ bigbadonk420 Це не дублікат, це зовсім інше питання.
Матвій

1
Технічна інформація: electronics.stackexchange.com/questions/22144/…
bwDraco

Відповіді:


3

Калібрування компаса працює шляхом виявлення напруженості магнітного поля Землі. Але іноді через сильну перешкоду від інших електронних пристроїв, таких як трансформатори, датчик компаса може отримати неправильне уявлення про магнітні полюси землі і може вказувати в неправильному напрямку.

Щоб забезпечити це, він просить користувачів повторно відкалібрувати компас, обертаючись у напрямку фігури-8, щоб він міг оцінити магнітну інтенсивність у всіх напрямках. З цих даних він виводить фактичні полюси землі.


1
Це насправді неправильна відповідь. Калібрування може скасувати лише спотворення, що надходять від об'єктів, закріплених на пристрої (таким чином обертаючись із пристроєм під час калібрування). Якщо об’єкти знаходяться в навколишньому середовищі, телефон буде спостерігати зафіксованим магнітним полем, і він не матиме уявлення, наскільки далеко від справжньої Півночі він спрямований.
Марко Тополник

5

Мета калібрування - з’ясувати, як компенсувати, як компоненти вашого телефону (гвинти, магніти динаміків тощо) перешкоджають вимірюваному магнітному полі.

Процес калібрування базується на тому, що ви можете розділити внутрішній та зовнішній внески в магнітне поле, переглянувши, як змінюється поле під час обертання телефону. Наприклад, в одній орієнтації магнітне поле від магніту в динаміку додаватиметься до поля Землі; але коли телефон орієнтований у зворотному напрямку, два поля частково скасуються.

Обертаючи телефон навколо, магнітометр записує, як змінюється величина вимірюваного поля, і використовує це для калібрування датчиків магнітного поля x, y і z. Дивіться відповідь geometrikal на подібне запитання, щоб отримати докладнішу інформацію про цей процес. Зауважте, що це калібрування не дозволяє компенсувати вплив інших зовнішніх предметів (наприклад, вашого холодильника) на магнітне поле.

Щодо впровадження в Google Maps: я вважаю, що Google Maps не контролює калібрування компаса, оскільки в API для Android немає такої функціональності. Магнітометр, ймовірно, постійно калібрується, і Карти Google просто просять повернути телефон, щоб магнітометр міг збирати потрібні йому дані для точного калібрування.

Іншими словами, ви можете калібрувати компас у будь-який час, коли датчик магнітного поля використовується лише махаючи телефоном - немає "режиму калібрування".


Але як Android-операційна система вирішує, коли змінити її значення калібрування, я відповідатиму на рух або через регулярні проміжки часу або обидва?
Hamish_Fernsby

Android повинен просто підтримувати історію показань і продовжувати застосовувати корекцію жорсткого заліза . Це навіть зазначено в документації .
Марко Тополник

3

У будь-якій точці простору сила та напрямок магнітного поля - це чистий ефект усіх джерел магнітного поля, що впливають на цю точку. Магнітне поле Землі - одне з них. Намагнічені викрутки, машини, магніти холодильники тощо, все виробляють поля. Поля також виробляються струмом, що протікає по дротах. Це як наливати воду в склянку з різних джерел. Опинившись у склянці, ви не можете сказати, звідки вона взялася.

Немає приладу, який міг би визначити "фактичні полюси" Землі, вимірюючи магнітне поле в точці. Однак телефон може зробити сенс, коли вісь телефону паралельна лінії магнітної сили N / S і визначити, який кінець телефону спрямований на північ. Якщо ви танцюєте далеко від предметів, які можуть намагнічуватися, як-от автомобілі та сталеві огорожі, поле, яке вимірює телефон, може бути в першу чергу земним полем, а значить, телефонний компас буде правильно відкалібрований. Якщо потім покласти телефон у намагнічений автомобіль, він вкаже неправильний напрямок на північ. Сталь у кожному автомобілі намагнічується в тій чи іншій мірі.

Компаси високої точності, які використовуються на літальних апаратах і на серйозних морських суднах, насправді мають крихітні коригувальні магніти, які регулюються гвинтами для помилок N / S та E / W. Їх калібрують після встановлення, повертаючи транспортний засіб на відомі заголовки (наприклад, троянда компаса, намальована геодезистом, на таксі, далеко від металевих будівель) і метушиться магнітами, поки помилка компаса не зводиться до мінімуму. Потім залишкові помилки записуються на "карту виправлення компаса" для використання у виправлення зазначених показань. Шукайте "карту виправлення компаса", щоб побачити зображення.

Теоретично GPS можна використовувати для калібрування компаса під час ходьби чи їзди, оскільки миттєвий трек GPS точний. Я не чув про це, як це робиться, хоча це, можливо, є загальним. Він би працював навіть у намагніченому автомобілі. Однак у літаку чи на кораблі це не спрацює, оскільки напрямок автомобіля в тій чи іншій мірі, як правило, злегка прокрадається у вітер, а GPS не знає про це.


Здається, це не говорить про те, як і чому працює загальна процедура калібрування в Android.
Руслан

1

Я перевірив вимірювання полів компаса, передбачених телефоном Android, і виявив, що якщо я повертати телефон на 180 градусів, поле не зміниться на прямо протилежне, що повинно бути у випадку правильності датчиків. Це може бути наслідком внутрішнього магнетизму деталей телефону або неточності читання датчика.

Якщо ви не компенсуєте це, а просто скористаєтеся читанням, як це є, і спробуєте обчислити напрямок Північної, ви дізнаєтесь, що вони неправильні: обертання телефону на 90 відхилень навколо вертикальної осі не призводить до обертання вимірюваного магнітного поля на той же кут (що стосується будь-якого кута, просто простіше перевірити його на 90 градусів).

Таким чином, метою калібрування є розробка формули компенсації, яка перетворить неправильні показання з магнітного датчика в більш реалістичні значення, з яких ми можемо обчислити правильний підшипник. Я гадаю, що він шукає оптимальний зсув нуля для кожної осі, який дасть результат довжини магнітного вектора незалежно від орієнтації телефону (це повинно бути в ідеальній ситуації, але це не так, коли нуль зміщується на будь-яку вісь ).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.