Розрахунок мертвих за допомогою акселерометра та гіроскопа. Можливо?


11

У мене є 3-осевий акселерометр та гіроскоп 3-х осі. Мені доручено розробити мертву систему розрахунків за допомогою цього обладнання.

По суті, мені потрібно розробити якийсь код для відстеження положення в 3d просторі дошки в режимі реального часу. Тож якщо я розпочну з дошки на столі і підніму її на 1 м вгору, я повинен мати можливість бачити цей рух на екрані. Обертання також потрібно враховувати, тому якщо я поверну дошку вгору на половину шляху тим же рухом, вона все одно повинна показувати однаковий результат вгору на 1 м. Те ж саме має відбутися і для будь-якого складного руху протягом декількох секунд.

Ігноруючи математику, необхідну для обчислення та повороту векторів тощо, чи можливо це навіть при такому дешевому пристрої? Наскільки я можу сказати, я не зможу зняти тяжкість із 100% точністю, це означає, що мій кут відносно землі буде вимкнено, а значить, мої векторні обертання будуть вимкнені, що призводить до неправильного вимірювання положення.

У мене також є шум від акселерометра та зміщення гіроскопа.

Це можна зробити?


2
Це можна зробити до точності, дозволеної датчиками. Помилки позиції накопичуватимуться з часом. Чи достатньо точності для вашого проекту, залежить.
Wouter van Ooijen

1
Розширена математика - це те, що буде робити проект можливим. Вам потрібно буде використовувати кватерніони, фільтр Кальмана та схему ZUPT або ZARU. Звідти, так, ви можете відстежувати це точно протягом декількох секунд. Я говорю з прямого досвіду.
Самуїл

У мене є чудова цитата лорда Кельвіна, що висить на стіні мого офісу кілька десятків років: "Кватерніони прийшли з Гамільтона ... і були незмішаним злом для тих, хто до них доторкнувся будь-яким способом. Вектор - це марне виживання ... і ніколи не мало жодної користі жодній істоті ".
Скотт Сейдман

@ScottSeidman Quaternions не так вже й погано, якщо ви думаєте про них з точки зору обертання навколо одиничних векторів. Тоді вам потрібно лише трохи тригонометрії, щоб перетворити форму / кватерніон.
JAB

@ JAB, очевидно, що вони (або якийсь інший підхід) необхідні, оскільки обертання не змінюються, вкладаючи в математику деякі досить цікаві нюанси.
Скотт Сейдман

Відповіді:


11

Відповіді та коментарі, які ви отримуєте, звичайно чудові, але я можу додати трохи кольору.

Наскільки це вартує, наша сенсоневральна система використовує майже однакові інструменти, і не завжди відповідає правильним чином! У нас є 3D-акселерометри (отолітові органи) та 3D-"гіроскопи" (кутові швидкітомери, напівкруглі канали), і все ж ми страждаємо від всіляких ілюзій, коли система не в змозі отримати правильну "відповідь", як ілюзія ліфта і окологравічна ілюзія. Часто ці збої трапляються під час низькочастотних лінійних прискорень, які важко відрізнити від сили тяжіння. Був час, коли пілоти занурювались в океан під час зльоту катапульти на авіаносцях через сильне сприйняття кроку внаслідок низькочастотного прискорення, пов’язаного із запуском, доки протоколи навчання не навчали їх ігнорувати це сприйняття.

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

Однак уявіть цю проблему "мертвого рахунку", яку багато хто зазнав, і я думаю, ви побачите, як це переноситься на світ MEMS. Ви сідаєте на реактивний літак, вилітаєте в Північну Америку, розганяєтеся до крейсерської швидкості, перетинаєте океан, уповільнюєтесь і приземляєтеся в Європі. Навіть усуваючи неоднозначності перекладу з нахилом від проблеми та передбачаючи нульове обертання, було б дуже мало надії на реальну реалізацію подвійної інтеграції профілів прискорення, що дасть профіль позиції де завгодно майже точний, щоб сказати, що ви дійшли до Європи . Навіть якби у вас на колінах сидів дуже точний гіроскопічний / акселерометровий пакет на 6 осі під час подорожі, це також матиме свої проблеми.

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

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


Дякую за світлу відповідь. Однак мене цікавить кілька речей: 1) що ви маєте на увазі під низькочастотними прискореннями? 2) Якщо проблема була зменшена з тривимірного положення до бічного переміщення (ігноруйте Z), чи простіше це? 3) Що з повільним рухом у морській воді, де вплив сили тяжіння зменшується? Будемо вдячні за будь-які вказівки на читання матеріалу з цих розрахунків.
achennu

Насправді, інтер'єрні навігаційні системи у старому стилі були б точними, щоб пройти за кілька миль після довгого польоту. Вони, мабуть, були надзвичайно точними. (Вони жили в досить великому ящику.) Технологія була розроблена в 1950-х роках для керівництва МБР.
Tuntable

9

Основні проблеми з мертвим рахунком, які я виявив, роблячи старший дизайнерський проект, подібний до вашого, полягає в тому, що акселерометр вимірює лише прискорення. Ви повинні інтегруватися один раз, щоб отримати швидкість плюс постійну С. Потім вам доведеться знову інтегруватися, щоб отримати позицію + Cx + D. Це означає, що раз обчислюючи позицію з даних акселерометра, ви закінчуєте зсув, але у вас також є помилка, яка лінійно зростає з часом. Для датчика MEM, який я використав, протягом 1 секунди він обчислив себе як мінімум за метр від місця, де він був насправді. Для того, щоб це було корисно, вам, як правило, дуже часто потрібно знайти спосіб усунути помилки, щоб уникнути накопичення помилок. Деякі проекти здатні це зробити, але багато - ні.

Акселерометри дають приємний вектор гравітації, який не виникає помилок з часом, а електронні компаси дають орієнтацію, не накопичуючи помилок, але загалом проблема мертвого рахунку не була вирішена тоннами грошей, витрачених ВМС на тонни датчиків на кораблях . Вони кращі за те, що ти вмієш робити, але останнє, що я прочитав, вони все ще виявилися вимкненими на 1 км під час подорожі 1000 км. Це насправді добре для розплати мертвих, але без їх обладнання ви не зможете досягти нічого близького до цього.


Звичайно, помилка - це відстань / час? Похибка швидкості буде лінійною, тому зміщення квадрата. Що цікаво, а не звертається увагу, - це наскільки хороші ці дешеві прискорювачі.
Tuntable

@Tuntable Сподіваємось, у вас є акселерометр, який не так вже й поганий, що у вас є значне постійне зміщення прискорення. Якщо у вас є такий, що погано, то так, ви отримаєте квадратну помилку з відстанню / часом.
хорта

7

Ви також матимете упередження у акселерометрах та шум у гіроскопах, з якими також матимете справу.

І гравітація не повинна вводити помилки в вимірюванні кута; навпаки, вектор сили тяжіння забезпечує "абсолютну орієнтир", яка допомагає вам нуль накопичити зміщення кутів "крок" та "котитися".

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

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

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

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

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


4

Коротка відповідь - "не зовсім". Довга відповідь полягає в тому, що ви можете формувати такі твердження, як "Зважаючи на мої показання гіроскопа, я на 95% впевнений, що пристрій повернувся між 28 градусами і 32 градусами з мого останнього читання".

Проблема полягає в тому, що ви в кінцевому підсумку збираєте дані про шумне диференціальне рівняння. Для кутового гіроскопа, що вимірює кутову швидкість, ви маєте шумний диференціальний eq а у разі акселерометра де - значення вашого датчика в момент часу .d2p(t)

dθ(t)dt=r(t)
r(t)t
d2p(t)dt2=r(t)
r(t)t

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

Якщо ви вирішили йти цим проспектом, вам доведеться вирішити кілька речей:

  • Що таке прийнятний рівень помилок? Ви хочете бути впевненими на 95%, це протягом одного градуса через 2 секунди чи ви хочете бути впевненими на 80%, що це через 5 градусів через 2 секунди?

  • Ознайомтеся з гіроскопом / акселерометром. Це можна використовувати для обчислення емпіричного розподілу шуму, який оцінює реальний шум. Використовуйте це, щоб вирішити своє шумне диференціальне рівняння та обчислити довірчі інтервали.

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

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


Проблема (або одна проблема) полягає в тому, що акселерометр чутливий до більш ніж p (t). Він також чутливий до змін тети навколо певних осей.
Скотт Сейдман

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