2016-02-01 3 views
2

Я понимаю, что есть три подхода к нейКак рассчитать расстояние во время работы на Android?

  1. GPS на основе: Добавить на короткие расстояния путешествовали (рассчитываются с использованием Location.distanceTo) в небольших интервалах времени (5-10 СЕК), но этот метод подвержен к ошибкам GPS и не будет работать в закрытом помещении или в короткой рабочей зоне (например, в небольшом парке)
  2. Двойная интеграция ускорения: Я могу сделать двойной интеграл данных акселерометра для расчета расстояния, но ошибки из-за шума в показаниях акселерометра могут добавить вверх.
  3. Шаг подсчета: Я могу определить шаги путем измерения пиков в данных акселерометра или с помощью Google Fit API, а затем умножить общее количество шагов со средней длиной шага. Но проблема здесь заключается в вычислении средней длины шага.

Я склонен к использованию # 3, поскольку он работает в помещении и не сильно подвержен ошибкам ИЛИ разряжается аккумулятор. Но как мне получить среднюю длину шага для каждого шага, особенно когда шаг бегуна изменяется по длине при спринте и беге.

Кто-нибудь знает какую-либо комбинацию этих методов для получения наилучших результатов? ИЛИ любой другой совершенно другой, но эффективный метод?

ответ

0

Ну, это инженерно - нет простого ответа;) Все эти методы, о которых вы упоминали, имеют свои плюсы и минусы.

Отслеживание GPS не будет суммировать ошибки каждого измерения - это здорово, но с другой стороны каждое местоположение будет выдано с заметной ошибкой. Более того, у вас будут проблемы с использованием вашего приложения в зданиях и т. Д. Двойная интеграция ускорения отлично работает на небольших расстояниях к моменту ошибки, увеличиваясь до большого числа. Также сложно создать программу, которая будет соответствующим образом рассчитать ее. Существует много важных вопросов, таких как, например, время выборки или вычисление матрицы вращения и перевода, что делает эти приложения очень проблематичными для android.

В моем приложении я использовал следующие algorytm:

  1. Вычислить местоположение с GPS (от сети провайдера или GPS-провайдера - лучшая точность выигрывает)
  2. Start с использованием акселерометра на основе algorytm.
  3. Stop с использованием акселерометра на основе algorytm, когда: измерения

    • GPS и акселерометр очень разные
    • Акселерометр основе алгоритм находит, что рассчитанные кватернионы отличаются от того, что магнитометр говорит.
    • Скорость или ускорение от измерений больше заданного значения.
  4. Перейти к точке 1

Надеется, что это помогает

+0

Я понимаю, что решение не является простым. Каков ваш алгоритм на основе акселерометра? и какова «заданная стоимость» скорости на вашем шаговом шаге? – ankit209

Смежные вопросы