Насколько я понимаю, есть два способа получить ориентацию (т. Е. yaw
. pitch
& roll
) телефона:
Использование Accelerometer
и Magnetometer
данные:
SensorManager.getRotationMatrix(mR, null, mLastAccelerometerData, mLastMagnetometerData);
SensorManager.getOrientation(mR, mAccMagOrientation);
Использование Rotation Vector
:
SensorManager.getRotationMatrixFromVector(mR, mLastRotationVector);
SensorManager.getOrientation(mR, mRotVecOrientation);
Я сделал маленький l oop в своем доме и собрал данные об ориентации, пока я держал телефон перед собой.
Хотя Pitch
и Roll
соответствуют ожиданиям и весьма похожи (наклон ~ = -25 градусов, крен ~ = 0 градусов), между этими двумя подходами существует большая разница в yaw
. К сожалению, мне не разрешили опубликовать сюжет, который это визуализирует, потому что мне не хватает очков репутации.
Мои вопросы:
- Почему
yaw
отличается? - Какой подход более точен и почему?
- Каким расчетам мне следует больше доверять?