Является ли Sensor.TYPE_LINEAR_ACCELERATION в Android таким же, как userAcceleration в IOS - PullRequest
0 голосов
/ 11 марта 2019

Привет, мне было интересно, если показания, которые вы получаете из TYPE_LINEAR_ACCELERATION, которые являются показаниями акселерометра без гравитации, эквивалентны показаниям, полученным из userAcceleration в IOS. Из того, что я вижу, это показания акселерометра за вычетом гравитации, но я просто хочу убедиться, что Apple не выпускает никакого исходного кода.

1 Ответ

0 голосов
/ 21 мая 2019

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

Важно отметить, что единицы измерения и системы отсчета iOS и Android различны. Android измеряет ускорение в м / с ^ 2, а iOS измеряет в g ​​(примерно 9,81 м / с ^ 2). Референсные рамки в документации кажутся идентичными (см. Ссылки ниже), но эталонная рамка iOS на самом деле противоположна эталонной системе Android. Например, когда устройство неподвижно на столе, iOS измеряет приблизительно -1,0 по оси z, а Android измеряет приблизительно 9,81 м / с ^ 2 (обратите внимание, что значение iOS является отрицательным, а значение Android - положительным).

Чтобы преобразовать показания iOS в систему отсчета и единицы измерения Android, вы можете умножить показания iOS со всех осей (x, y и z) на -g (примерно -9,81):

acc_x_iOS * -9.81 ≡ acc_x_Android
acc_y_iOS * -9.81 ≡ acc_y_Android
acc_z_iOS * -9.81 ≡ acc_z_Android

Документация по iOS: https://developer.apple.com/documentation/coremotion/getting_processed_device-motion_data/understanding_reference_frames_and_device_attitude

Документы для Android: https://developer.android.com/guide/topics/sensors/sensors_overview

...