【问题标题】:Android Convert device coordinate system to "user" coordinate systemAndroid 将设备坐标系转换为“用户”坐标系
【发布时间】:2012-09-06 20:18:21
【问题描述】:

我的问题类似于Changing sensor coordinate system in android

我希望能够在不考虑设备方向的情况下相互比较用户的动作。因此,当用户将手机纵向伸出并弯曲手臂时,加速度读数与用户横向伸出手机然后向同一方向弯曲手臂时的加速度读数相同。

这就是我所说的“用户”坐标系。它与世界坐标系不同,因为用户面对的风向无关紧要。它与设备坐标不同,因为用户握持设备的方式并不重要。

在我的应用程序中,可以在每次移动之前执行校准步骤,以便确定基础/静止方向矩阵。是否可能只是将第一个运动的矩阵乘以第二个运动的逆矩阵(然后再乘以新值?)

上面提到的问题的答案似乎是正确的,但我需要更具体的解释,实际的代码示例会是理想的。

注意 remapCoordinateSystem 是不够的,它只接受直角。由于设备被绑在手腕上,我需要能够处理微小的偏差,而手腕可能并不总是与手臂成直角。

【问题讨论】:

    标签: android orientation sensors android-sensors rotational-matrices


    【解决方案1】:

    我目前正在处理这个问题,我认为这可能会有所帮助: convert device coordinate system to world corrdinate system

    我们可以假设,在大多数情况下,人们使用手机时是站着或走路或坐着的,这意味着用户坐标系共享相同的 z 轴(重力),并且 y 轴之间的度数是固定的(用户坐标,用户正面)和 y 轴(世界坐标,北方向)。程度差异可以通过TYPE_MAGNETIC_FIELD sensor获取。这样我们就可以从世界坐标转换到用户坐标了。

    用户躺在床上使用手机会怎样?我认为对于这种情况,需要通过定义用户坐标的 y 轴来进行预校准,就像告诉手机哪个方向是用户正面的移动一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多