Інерціальні датчики: рецепти приготування для систем позиціонування

В цій замітці ми поговоримо про інерційних датчиках. Про те, що вони вимірюють і про те, як ці фізичні величини можна використовувати.
Більшість сучасних мобільних телефонів мають на борту тріади акселерометрів, гіроскопів і магнітометрів, часто в додаток до них ставиться і датчик атмосферного тиску.
З останнім датчиком все гранично ясно: майже у кожного з нас вдома або на дачі висить барометр і міліметри його ртутного стовпа міцно пов'язані з дощем, негодою та загальним самопочуттям улюбленої бабусі. А ось що вимірюють акселерометр, гіроскоп і магнітометр, і як використовувати цю інформацію для визначення орієнтації пристрою в просторі?

Акселерометр

У вікіпедії сказано, що акселерометр — це прилад, що вимірює проекцію уявного прискорення. Типовий акселерометр складається з трьох взаємно перпендикулярних вимірювальних осей, які реєструють гравітаційне і лінійні прискорення.
З допомогою вимірювань тривісного акселерометра можна визначити його орієнтацію відносно опорного вектора, яким в даному випадку є гравітаційне прискорення. Тоді, однак, орієнтація буде вирішена не повністю — залишиться невизначеність щодо кута повороту навколо осі, паралельної напрямку прискорення вільного падіння.
Докладніше це пояснено на малюнку нижче. Уявімо, що в нашому розпорядженні є вимірювальний пристрій з акселерометром, має три осі X, Y і Z. На малюнку дані осі позначені червоним, зеленим і синім кольором і утворюють ліву трійку векторів. Очевидно, що якщо для визначення орієнтації доступний тільки вектор прискорення вільного падіння, то буде існувати нескінченне число можливих орієнтацій вимірювального пристрою, при яких вісь Z акселерометра буде вимірювати значення прискорення вільного падіння, але дозволити абсолютну орієнтацію пристрою ми не зможемо.

Магнітометр

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

Гіроскоп

Гіроскоп дозволяє виміряти швидкість обертання пристрою, відповідно для того, щоб привести швидкість до кута повороту ми повинні її інтегрувати. Із цим положенням пов'язана основна проблема орієнтації тільки за допомогою гіроскопа — з-за постійного інтегрування не зовсім точних вимірювань кутових швидкостей, викликаних зсувом нуля або температурними ефектами, ми отримаємо дрейф орієнтації, або, іншими словами, вона буде "спливати" від істинного значення.
Перевага використання всіх трьох датчиків у фільтрі орієнтації криється в тому, що:
  • Завдяки вимірам гіроскопа стає можливим одночасне пригнічення стрибків орієнтації із збереженням реактивності фільтра, фактично ми отримуємо аналог низькочастотного фільтра без будь-якої затримки, при візуалізації спостерігається "плавність" при обертанні об'єкта. Хороший фільтр для швидкого старту — фільтр Мадвика, але на мій погляд, ще більш інтуїтивним є фільтр Махоні, так як в ньому помилка орієнтації розраховується не за допомогою градієнта, а шляхом простого векторного множення.
    Подібні фільтри можна використовувати і для об'єднання вимірювань пар датчиків. Наприклад, на наступному малюнку показаний результат оцінки висоти з використанням фільтра Калмана, де в якості вимірювань використовуються дані про атмосферний тиск, а в якості зовнішнього впливу — вимірювання акселерометра. До речі на хабре є подібне рішення, там акселерометр і барометр використовують для стабілізації висоти квадрокоптера.
  • Стає можливим включення в вектор стану системи параметрів датчиків: таких як зсув нуля акселерометра і гіроскопа. Використовувані фільтри, побудовані на базі комплементарних або фільтра Калмана, поступово сходяться до істинного значення зміщення нуля датчика.
  • Можна ефективно організувати збір калібрувальних даних. Так, при зборі калібрувальних даних для магнітометра для максимально рівномірного покриття поверхні кулі можна використовувати дані про орієнтацію пристрою та ініціювати процес калібрування тільки після того, коли всі необхідні сегменти кулі будуть містити як мінімум один вимір.
  • З'являється можливість тією чи іншою мірою вирішити основні проблеми при визначенні орієнтації: оцінити напрям зовнішнього прискорення або визначити, чи є в даній точці локальне магнітне обурення, а значить, не слід довіряти вимірам магнітометра.

Як можна ще використовувати дані від інерційних датчиків?

Крім традиційної і добре вивченою задачі визначення орієнтації пристрою, інерціальні датчики можуть використовуватися для:
  • Збору даних про магнітній картці приміщення. Приклад такої карти наведено на малюнку нижче. Видно, що в різних частинах будівлі змінюється не тільки магнітуда магнітного поля (в мкТл), але і напрям вектора магнітної індукції (позначено рожевим лінією). Таку картку використовувати для уточненого позиціонування об'єкта у доповнення до традиційних карт радіосигналу.
  • Відновлення траєкторії руху об'єкта. Таким об'єктом може бути пішохід чи автомобіль. В окремих випадках, наприклад при кріпленні пристрою на нозі і точної попередньої калібрування датчиків можна домогтися помилки повернення в точку початку руху, не перевищує десятків сантиметрів для довжини шляху перевищує 100 метрів. Приклад відновленої траєкторії методом ZUPT(при скиданні помилки в періоди нерухомості), доповненим вимірами датчика атмосферного тиску наведено на наступному рисунку (траєкторія руху включала в себе прохід по коридору, спуск по сходах, ще один прохід і підйом на ліфті). Подібний метод вже згадувався на хабре тут.

    При довільному кріплення пристрою на тілі людини помилка повернення до вихідної точки, як правило, значно більше і складає 15-20% від пройденої дистанції. Таке її значення обумовлено, по-перше, помилкою у визначенні довжини кроку, а по-друге, помилкою у визначенні напрямку руху.
  • Ініціювання яких-небудь подій або управління пристроєм. Це можливо зробити за допомогою "малювання" пристроєм якоїсь фігури або образу в повітрі, наприклад символ ∞ може використовуватися для запуску калібрування магнітометра, поздовжні помахи пристроєм для генерації екстреного повідомлення, потрійний "тап" — для вимикання. Дані завдання вирішуються за допомогою заздалегідь підготовлених класифікаторів.
  • Визначення поточної активності користувача. Наприклад, при використанні пристроїв в офісі може бути корисним знання про те, наскільки багато людей рухався протягом робочого дня і типі руху — яку частину часу він провів стоячи, сидячи, скільки часу витратив на різні переходи по будівлі.
В майбутніх статтях планується розкрити теми того, як працювати з інерціальними датчиками — обговорити способи їх калібрування (хоча це вже і обговорювалося на хабре), подивитися на існуючі способи відновлення траєкторії руху людини, вивчити підходи до детектуванню і усунення збурень магнітного поля, а також обговорити архітектуру вбудованого ПЗ для своєчасного таймштампирования і обробки їх вимірювань.
Автор — Олександр Міков.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.