将加速从手机转换为车轴

时间:2018-03-17 22:09:02

标签: android vector sensor android-sensors

情景:

  1. 用户正在放置手机并将其直接贴在车上。让我们用胶带说。 (它可以放在用户想要的任何位置)
  2. 用户点击Calibrate,其中存储有关某些变量的加速度的当前信息。让我们说:calibrationAcc = double[]{0,0,9.81}将是值,电话何时面临up
  3. 用户正在加速驾驶,所以我收到currectAcc,显然是与重力一起。
  4. 据我所知,为了获得粗略的加速度(没有重力),我唯一需要做的就是从校准中减去currentAcceleration形式的值。所以它会是:

    roughAcc = currentAcc - calibrationAcc
    

    现在,我的roughAcc包含的矢量值与纯汽车加速度相关。但是因为我不知道手机放在车内的位置(它可以像相机一样放置)我不知道如何改变我的{{1}进入汽车的坐标系。我希望有形式的值:

    roughAcc

    我在这里遗漏了一些东西。最简单的问题,我无法用我拥有的数据(仅使用校准矢量)来解决这种情况,当用户将手机平放在车内时(carAcc { x // left or right car, increased in corners y // front or back car, increased when accelerating z // up or down, increased on bumps } 。即使在这种情况下,我也看不懂清除加速度的哪一部分calibration = {0,0,9.8}carAcc.x,因为我不知道手机在车内的位置(如果它放在carAcc.y轴上汽车的前部,或x,或是否是歪斜。

    因此,就数学和矢量运算而言,我需要将y转换为roughAcc以及如何执行此操作。

0 个答案:

没有答案