Алгоритм AHRS при безперервних лінійних прискореннях


9

Я спробував декілька алгоритмів, щоб дістати крок, котитися і постукувати при безперервних лінійних прискореннях і коливаннях (менше 0,4 г, частота нижче 10 Гц). Жоден з них не дає хороших результатів, оскільки показання або зменшуються, або надто сильно впливають на лінійні прискорення. Я хочу досягти, коли зовнішнє прискорення менше + -0,4 г, похибка нахилу та нахилу повинна бути меншою за + -1 дег.

Я спробував такі алгоритми:

  1. Алгоритм Мадгвіка . Коли коефіцієнт підсилення бета-версії задається дуже високим, конвергенція швидка, але кути більш чутливі до лінійних прискорень. Я налаштував його і зменшив помилку при лінійних прискореннях до + -0,5дег. Однак якщо вібрація буде безперервною, показання будуть дрейфувати, і для вірогідних значень потрібно назавжди. Це має сенс, тому що при лінійних прискореннях гіроскопам довіряють більше, і обчислені кути відхиляються як відхилення гіроскопа.

  2. Алгоритм Махоні . Навпаки, з Madgwick's, це зовсім не дрейфує, незалежно від того, які значення я використовую для Ki та Kp. Однак на нього завжди впливають лінійні прискорення. (Помилки більше + -6deg)

  3. Традиційний фільтр Кальмана . Багато часу було витрачено на налаштування цих величезних векторів R та Q. Поки що вона має таку саму виставу, як і у Mahony.

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

Є ще кілька варіантів, таких як UKF, але це зрозуміти чи реалізовувати.

Будь-яка пропозиція вітається.


Як ви інтегруєтесь для Кальмана?
C. Towne Springer

Використовуючи інтеграцію Ейлера, але обертання строго однієї осі, щоб уникнути DCM. @ C.TowneSpringer
Timtianyang

Це має добре працювати? Востаннє, коли я робив це (ALCM), Ейлер був непридатним. Ейлер - метод першого порядку з локальною помилкою, пропорційною квадрату розміру кроку, і грубою помилкою, пропорційною розміру кроку. Ми використовували Runge-Kutta 4-го порядку з фільтром Kalman. Я думаю, що Ньютон-Фейнман чи Ейлер мають початкові здогадки, щоб почати Рунге-Кутту. Чи маєте ви обробку для вирішення цієї проблеми з хорошою швидкістю оновлення?
C. Towne Springer

Дякую за пропозицію. Локальна помилка методу інтеграції ейлера була недооцінена. Ми плануємо робити фільтрацію в пост, тому у нас немає великих обмежень щодо складності обчислень. @ C.TowneSpringer
Timtianyang

Відповіді:


3

По-перше, переконайтеся, що ви зрозуміли два ключові моменти тут:

  1. Визначення відношення лише з даних IMU за своєю суттю неоднозначне за наявності лінійного прискорення . Без додаткових знань про природу прискорень завжди буде верхня межа точності, яку ви можете досягти.

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

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

Отже, ви можете зробити дві речі.

  1. Підвищити точність інтеграції гіроскопів.
  2. Якось моделюйте характер лінійних прискорень.

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

Однак можна покращити інтеграцію до гіроскопа:

  1. Отримайте найкращу можливу оцінку зміщення гіроскопа . Зробіть статичні показання гіроскопа протягом декількох секунд безпосередньо перед використанням, і порівняйте їх, щоб отримати свої значення зміщення. Не покладайтеся на одноразове попереднє калібрування.
  2. Намагайтеся мінімізувати дрейф через температуру. Дайте IMU нагрітися до стабільної робочої температури перед калібруванням / використанням. Намагайтеся підтримувати його при стабільній температурі під час роботи.
  3. Вдосконаліть модель калібрування. Розглянемо, включаючи ефекти поперечної осі та нелінійність, а також просто масштаб і зміщення.
  4. Використовуйте кращий метод інтеграції. У коментарях до вашого питання вже є деякі ідеї.
  5. Подивіться, чи можна відстежувати дрейф гіроскопа. Якщо алгоритм орієнтації повинен послідовно коригувати дрейф у певному напрямку, це можна виявити та використовувати для обережного регулювання значень зміщення.

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


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