Как рассчитать пройденный путь мобильных устройств, используя данные датчиков? - PullRequest
1 голос
/ 21 февраля 2020

Я хочу построить движение устройства в трехмерном пространстве, используя акселерометр, гироскоп и другие сенсоры смартфона.

После небольшого исследования я нашел уравнение, в котором говорилось, что это можно сделать, выполнив двойное интегрирование уравнения a*t^2, но при этом появилось огромное количество накопленных ошибок и отклонений. Моим решением было пропустить двойную интеграцию и вместо этого вычислить площадь трапеции - ((a(t) - a(t-1)) * dt / 2) + (dt * a(t)), однако это дает дискретные результаты, которые при сложении не дают правильного пути (даже без применения гравитационного фильтра и при перемещении устройства на плоскости поверхность).

Существует ли более точный способ выполнения этих вычислений в режиме реального времени, учитывая, что у меня есть постоянное значение для дельта-времени и выборка данных датчика на каждом временном интервале, где N-ая выборка берется в момент времени N * dt.

1 Ответ

1 голос
/ 21 февраля 2020

К сожалению, если вы просто используете данные акселерометра и гироскопа, то, как правило, со временем ваши данные будут немного смещаться. Какие еще датчики вы используете? Есть ли у вас доступ к данным GPS? И у вас есть математическая модель движения, которое, как вы ожидаете, будет у смартфона ниже go?

Тем не менее, если вы застряли в IMU, то существует огромное множество фильтров, которые дадут Вы считаете, что это лучше, чем простая интеграция. Самым простым из них, вероятно, является Фильтр Мэгвика , который прост в реализации и просто объединяет данные линейного акселерометра и гироскопа c. Важным выводом здесь является то, что данные датчика гироскопа c преобразуются и обновляются как кватернионы.

Этот учебник на самом деле дает довольно хороший обзор математической модели IMU и несколько фильтров, которые вы можете проверить. Самым сложным является Фильтр Калмана и его разновидности, такие как Неароматизированный Фильтр Калмана , они могут быть сложными для настройки, но в целом дают хорошую производительность.

Извините, что есть не простой ответ на ваш вопрос. Но вы задаете широкий вопрос, и ответ сильно зависит от вашего заявления. Но я бы порекомендовал поиграть с фильтрами Madgwick или Complementary, перечисленными в этом руководстве, они довольно просты и могут дать вам быстрое улучшение по сравнению с вашими первоначальными оценками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...