Чи підходить фільтр Калмана для фільтрації прогнозованих позицій точок з урахуванням кутів Ейлера пристрою захоплення?


17

Моя система така. Я використовую камеру мобільного пристрою для відстеження об'єкта. З цього відстеження я отримую чотири 3D-точки, які я проектую на екрані, щоб отримати чотири 2D бали. Ці 8 значень якось галасливі, завдяки виявленню, тому я хочу відфільтрувати їх, щоб зробити рух більш плавним та реалістичним. В якості другого вимірювання я використовую гіроскопний пристрій пристрою, який забезпечує три кути Ейлера (тобто положення пристрою). Вони є більш точними і з більшою частотою (до 100 Гц), ніж 2D положення (близько 20 Гц).

Моя перша спроба була з простим фільтром низьких частот, але відставання було важливим, тому я зараз намагаюся використовувати фільтр Калмана, сподіваючись, що він зможе згладити позиції з невеликою затримкою. Як видно з попереднього питання , одним із ключових моментів у фільтрі Калмана є співвідношення між вимірюваннями та змінними внутрішнього стану. Тут вимірювання - це мої 8 2D координати точок та 3 кути Ейлера, але я не впевнений у тому, що я повинен використовувати як внутрішні змінні стану та як я повинен підключати кути Ейлера до 2D точок. Звідси першочергове питання, чи фільтр Кальмана навіть підходить для цієї проблеми? І якщо так, то як?


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

@niaren: Дякую за коментар, я також це вивчу.
Stéphane Péchard

1
Незрозуміло, які ваші вимірювання. У рамках фільтра Калмана "вимірювання" позначають величини, які ви фактично спостерігаєте. Якщо ви вимірюєте чотири 3D-точки (наприклад, злиття кількох зображень камер разом), то це ваші вимірювання. Вам також потрібно вирішити, які змінні стану ви намагаєтеся оцінити. Чи намагаєтесь ви відстежувати місця розташування 3D-об’єктів протягом часу? Якщо це так, це ваші змінні стану. Може бути доречним, щоб 2D-представлення можна було використовувати лише для відображення і не включати як частину вашої моделі. Додаткові деталі допоможуть запропонувати підхід.
Jason R

Як каже Джаон, які ваші вимірювання не є зрозумілими. Ти кажеш: From this tracking, I get four 3D points that I project on a mobile device screen, to get four 2D points. These 8 values are kinda noisyа потім пізніше кажеш What's available to me is the device's gyroscope output, which provides three Euler angles (i.e. the device attitude).. Що це таке? Чотири 2D точки, або три кути Ейлера? Або потяг обробки переходить кути Ейлера -> 3D точки -> 2D точки?
Пітер К.

У мене фактично два набори вимірювань: виявлені точки точки від камери та кути Ейлера, але вони не банальні для відношення. Плюс мене цікавлять лише відфільтровані позиції як вихід. Я відредагую питання, щоб уточнити.
Stéphane Péchard

Відповіді:


4

Фільтрація низьких частот

Було б добре знати, що ви маєте на увазі під «простим фільтром низьких частот».

Наприклад, якщо ваші вимірювання в момент часу єk

pk=[xkyk]

і ваші оцінки, відфільтровані з низькою прохідністю:

pkLPF=αpk1LPF+(1α)pk

тоді у вас буде досить велика групова затримка фільтра приблизно (для альфа близької до 1). 1/(1α)

Моделювання сигналу: спрощений підхід

Для використання фільтра Калмана (або будь-якого подібного підходу) вам потрібно мати модель того, як ваші вимірювання набуваються та оновлюються.

Зазвичай це виглядає так:

де ϵ k - процес (рушійний) шум, A - матриця переходу стану, а B - ваша вхідна матриця.

pk+1TRUE=ApkTRUE+Bϵk
ϵkAB

І тоді ваші вимірювані є: p k = C p T R U E k + D ν k, де ν k - вихідний (вимірювальний) шум, C - вихідна матриця, а D - ваша матриця шуму вимірювання.pk

pk=CpkTRUE+Dνk
νkCD

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

Ви можете застосувати до цього рівняння фільтра Калмана, щоб отримати оцінки стану справжнього положення.pkTRUE^

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

Моделювання сигналу: почати кращий підхід

На цій сторінці показано, як налаштувати проблему з позиціями та кутами ейлера. Це робить щось інше, ніж потрібно, але стан:

pkTRUE=[xk yk zk x˙k y˙k z˙k x¨k y¨k z¨k ϕ ψ θ ϕ˙ ψ˙ θ˙ ϕ¨ ψ¨ θ¨ ]T

а вимірювання (вихід) -

pk=[xk yk zk ϕ ψ θ ]T

Усі моделі на цій сторінці справді роблять так: (але для кожного зх,у,іг).

xkTRUE=n=0kx˙nTRUEnΔt+12n=0kx¨nTRUE(nΔt)2
x,y,z

Це просто класичні «рівняння руху». Дивіться рівняння (3) тут.


pk=αpk1+(α1)pk

α

Δt;12(Δ2)

Δt1/fs

1
fsΔtΔт12Δт2

0

Ваш фільтр низьких частот може бути таким;

pk=αpk1+(1α)zk

zkkpkk

LPF може деформуватися до наступного:

pk=pk1+K(zkpk1)
K=(1α)

K

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