Как получить положение инварианта 9-осевого инерционного датчика? - PullRequest
1 голос
/ 09 мая 2019

Каков наилучший способ отследить инвариантную траекторию ориентации инерциальной единицы измерения (акселерометр + гироскоп + магнитометр).

Например, у меня в руке есть инерционная единица, и если я хочуиспользуйте это как ручку, чтобы написать что-то (произнесите алфавит 'A' в воздухе).Я использую модель машинного обучения и тренируюсь, написав «А» в воздухе, скажем, 30 раз, а «В» - 30 раз.Модель изучает это и классифицирует, является ли это A или B, когда я даю ему новый ввод.Это все хорошо.Но здесь возникает актуальный вопрос.Я тренирую модель, написав «А» и «В» в воздухе, и модель изучает ее только в той ориентации, в которой я держу инерционную единицу.Когда я предоставляю обученной модели новый вход «А», удерживающий, скажем, инерциальную единицу, слегка отклоненную от ориентации датчика, который удерживался во время тренировки, модель запутывается.

Итак, есть ли способ, какЯ могу использовать инерционный датчик для отмены ориентации и просто отслеживать положение датчика в пространстве и использовать эту траекторию для обучения модели?

Я узнал, что могу найти положение инерционного датчика с помощьюдвойная интеграция значений ускорения, которые я получаю.Но потом это оказывается утомительным и ненадежным процессом для моего приложения.Что-нибудь с использованием кватернионов?Я частично понимаю, что мне нужно преобразовать сенсорную рамку в мировую, чтобы достичь того, чего я хочу, но я чувствую, что это слишком сложно, или я просто слишком усложняю это для себя?

Мое распознавание жестов с помощью ориентированных работхорошо.Я сделал это, используя MATLAB

Gesture = SVMclassifier(Features);

Features - это таблица объектов, которая является входом для функции SVMclassifier, которая выплевывает классифицированный жест.

Ожидаемый результат: независимый от ориентации жест

Фактический результат: зависящий от ориентации жест

...