Android在地球坐标系上获得加速度计

use*_*663 7 processing android matrix accelerometer coordinates

我想在Android上获得加速度计并将它们放在地球坐标系上,就像在这个主题上从设备的坐标系加速到绝对坐标系或这里将加速度计的数据从设备坐标转换为真实世界坐标,但这些解决方案没有为我工作.我正在处理Processing.该项目只是为了追踪太空中的手机加速度,无论它是怎样的(站立,侧面......).我也是Android的新手.我很感激你的帮助!谢谢.

编辑:我不需要手机准确的位置,只需要加速.

use*_*663 6

我终于解决了!我结合了之前的两个答案,代码如下:

  monSensorManager.getRotationMatrix(Rotate, I, gravity_values, mag_values); 
  float[] relativacc = new float[4];
  float[] inv = new float[16];
  relativacc[0]=lin_values[0];
  relativacc[1]=lin_values[1];
  relativacc[2]=lin_values[2];
  relativacc[3]=0;
  android.opengl.Matrix.invertM(inv, 0, Rotate, 0);
  android.opengl.Matrix.multiplyMV(earthAcc, 0, inv, 0, relativacc, 0);
Run Code Online (Sandbox Code Playgroud)

1) 获取地球坐标中的手机单位向量 2) 求逆矩阵以获取手机坐标中的地球单位向量 3) 将手机加速度乘以单位向量,将手机坐标转换为地球坐标。感谢大家的帮助!