В чем разница между датчиками силы тяжести и ускорения в Android?
В чем разница между датчиками силы тяжести и ускорения в Android? С моей точки зрения, физическая ценность одинакова в обоих случаях.
Какой из них измеряет силу, действующую на единицу массы внутри устройства?
Сложение
Вопрос в том, какая физическая величина измеряется этими датчиками? Согласно принципу эквивалентности ускорение и сила тяжести неразличимы, и единственный способ измерить и то, и другое - это обычное (но трехмерное) пружинное равновесие.
2 ответа
Датчик ускорения возвращает вам сумму всех сил, приложенных к вашему устройству, а датчик силы тяжести возвращает только влияние силы тяжести. Если вы хотите исключить гравитацию из ускорения, вы можете использовать фильтр верхних частот или просто вычесть значения датчика гравитации из значений датчика ускорения - не уверен, какой метод дает более высокую точность.
Другим методом может быть использование Sensor.TYPE_LINEAR_ACCELERATION, который дает точное значение (ускорение - сила тяжести), однако вам следует проверить, доступен ли он на устройстве. Я обнаружил несколько устройств, у которых работает датчик ACCELERATION, но нет ответа от датчиков GRAVITY или LINEAR_ACCELERATION.
Эта ссылка может быть полезна: http://www.sensorplatforms.com/which-sensors-in-android-gets-direct-input-what-are-virtual-sensors
Следующая выдержка суммирует ответ на ваш вопрос:
"Список... включает в себя как физические датчики, так и типы датчиков со значениями, полученными из физических датчиков, иногда их называют виртуальными датчиками... Типы виртуальных датчиков (гравитация, линейное ускорение и вектор вращения) предоставляют значения, полученные путем объединения результатов. разумно из физических датчиков... Вектор вращения - это комбинация акселерометра, магнитометра и иногда гироскопа для определения трехмерного угла, под которым устройство Android лежит относительно координат рамки Земли. Зная вектор вращения устройства, данные акселерометра могут быть разделены на гравитацию и линейное ускорение ".
Эта ссылка /questions/23340676/android-datchik-silyi-tyazhesti-typegravity-dlya-21/23340682#23340682 также говорит, что значения силы тяжести вычисляются с использованием фильтра Баттерворта.