Тангаж, крен и рыскание от акселерометра и магнитометра

Я хотел бы сделать некоторую работу на основе вектора вращения. Проблема в том, что большинство устройств Android не имеют ни датчика гироскопа (ни датчика вектора вращения). Я думаю, что есть способ для вычисления аппроксимации кватерниона с помощью акселерометра (для тангажа и крена) и магнитометра (для рыскания). Проблема в том, что их значения не ограничены максимальным значением (для шага и крена я мог бы использовать G=9,81 и попытаться отфильтровать дополнительное ускорение).

Может ли кто-нибудь помочь мне найти приблизительное решение?

1 ответ

Решение
float[] rotationMatrix = new float[16];
float[] rotationMatrixRemapped = new float[16];
float[] accMagOrientation = new float[3];

SensorManager.getRotationMatrix(rotationMatrix, null, oldAccelerometerVals, oldMagnetometerVals);
SensorManager.remapCoordinateSystem(rotationMatrix, SensorManager.AXIS_MINUS_Y, SensorManager.AXIS_MINUS_X, rotationMatrixRemapped);
SensorManager.getOrientation(rotationMatrix, accMagOrientation);
Другие вопросы по тегам