Как удалить фактор Силы тяжести из чтений Акселерометра в Android акселерометр с 3 осями

Кто-либо может помочь на удалении g фактора от чтений акселерометра?

Я использую SensorEventListener с onSensorChanged() метод для получения Датчика. Данные TYPE_ACCELEROMETER. Мне нужны только чистые ускоряющие значения во всех направлениях. Таким образом в любом состоянии, если устройство стабильно (или в постоянной скорости), это должно дать (0.0 0.0 0.0) примерно.

В настоящее время, в зависимости от его продольного и поперечного крена, это дает мне переменный вывод в зависимости от сил g, действующих на каждую ось.

Я надеюсь, что существует некоторая формула для удаления этого, поскольку я также добираюсь, ориентация оценивает (продольный и поперечный крен) от Датчика. Слушатель TYPE_ORIENTATION. Я использовал некоторых, но это не работало.

15
задан Matthias Braun 17 April 2018 в 08:17
поделиться

1 ответ

Дифференциация по времени как функция времени избавляет вас от констант.

Таким образом, взяв производную от сигнала акселерометра, вы получите "рывок", который затем можно повторно интегрировать, чтобы получить непостоянную часть ускорения, которое вы ищете.

С точки зрения непрофессионала, каждые 1 секунду берите образец с акселерометра и вычтите его из предыдущего образца. Если ответ (очень близок к нулю), вы не ускоряетесь относительно земли. Если результат не равен нулю, проинтегрируйте его (в данном случае умножьте на одну секунду), и вы получите ускорение.

Однако две вещи: - Обратите внимание на шум в сигнале, закруглите ввод. -Не ждите сверхточных результатов от встроенных акселерометров. Вы можете использовать их для обнаружения тряски, изменения ориентации, но не для того, чтобы знать, сколько перегрузок вы испытываете, делая крутые повороты в машине.

4
ответ дан 1 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: