Intereting Posts
Android: настройка фона окна на запущенной Можно ли запустить андроид только при первом открытии приложения? Пример кода для Android AudioTrack Mixing Android / gradle: включить имя версии из аромата в имени файла apk Android-клавиатура, удобная для Android, в поле ввода webview Удалить скобки из списка, установленного в текстовое окно? Android: Как правильно установить цвет текста для элементов списка в AlertDialog Устройства Android сканируют * активно * для сетей Wi-Fi? Что случилось с этой строкой формата? Сбой в действиях с помощью SharedElement Проблема с сетевым носителем JellyBean для Android Фильтр списка фильтров Пользовательский адаптер не дает результата Как получить ссылку на продукт в приложении под приложениями, указанными для учетной записи издателя? Файл R.java из проекта библиотеки Android, не импортирующий в проект приложения Android: Как использовать разные темы для разных версий Android?

Как измерить скорость автомобиля по телефону с акселерометром и гироскопом?

Я хочу узнать текущую скорость автомобиля и сделать пройденный путь. У меня есть телефон Android с акселерометром и гироскопом, который отправил мне данные. Это данные в телефонной системе координат, которые, вероятно, не будут совпадать с системой координат автомобиля.

Как я могу преобразовать эти ускорения и вращения в систему координат автомобиля?

Solutions Collecting From Web of "Как измерить скорость автомобиля по телефону с акселерометром и гироскопом?"

Общий ответ на ваш общий вопрос – no . Ускорение измеряет изменения скорости, поэтому лучшее, что вы можете получить от ускорения, – это изменение скорости.

Чтобы получить absolute speed вы должны иметь initial speed и добавить ее к изменению скорости:

v(t) = v0 + a*t

Итак, если бы у вас была машина, движущаяся по прямой линии, и ваше устройство было привязано к машине, вы могли бы легко ускорить изменение скорости (хотя ошибки измерений будут складываться и быстро приводить к расхождениям)

На практике вы столкнетесь со многими проблемами, пытающимися ее реализовать, а именно:

  • Вам нужно, чтобы initial speed определялась на основе той же ссылки, что и ускорение. Для этого потребуются некоторые измерения и много тригнометрия, так как вы получите обе значения от разных сенсонов с разной скоростью.
  • Автомобиль не будет двигаться по прямой линии, поэтому ваше ускорение будет постоянно перемещаться (намного больше тригнометрия и исчисление).
  • Если устройство находится в руке пользователя, движение устройства по отношению к автомобилю еще больше увеличит расчеты (и накопленные ошибки).

С уважением.

Оба не доставляют ничего, если автомобиль путешествует с той же постоянной скоростью в течение некоторого времени. Единственный способ – это GPS, который имеет рассчитанную скорость с каждым местоположением, которое он обеспечивает.

Вам нужна какая-то внешняя ссылка (например, GPS – это такая вещь): если вы просто интегрируете ускорение, ошибка будет идти бесконечно.

Потому что эти датчики недостаточно точны. Ошибка быстро выйдет из-под контроля. (Связанный ответ о позиции, но то же самое относится к скорости.)

В случае с автомобилем вам лучше с GPS. Если вы хотите сделать что-то необычное, вы можете обеспечить соблюдение экологических ограничений, выведенных с карты, то есть предположите, что автомобиль идет по дороге, а не через здания и т. Д. Более подробно об этом вы найдете в главе 5 докторской диссертации Озаглавленной «Локализация пешеходов для внутренней среды» .

Похоже, что это можно сделать. У меня нет конкретного Android-примера, но на этом форуме довольно много об этом говорят: http://www.edaboard.com/thread119232.html

Было бы намного проще, если бы вы использовали класс Android Location. В частности, метод getSpeed ​​() должен предоставить вам то, что вам нужно: http://developer.android.com/reference/android/location/Location.html

Класс Location основан на провайдере местоположения, поэтому ваше приложение потребует соответствующих разрешений.